1. 程式人生 > >菜鳥的C#學習之旅——算數運算子

菜鳥的C#學習之旅——算數運算子

內容提示

  • 佔位符

  • 隱式轉換

  • 顯示轉換

  • 轉義符

  • 型別轉換

  • 加加減減

  • 接收使用者輸入的內容

  • 總結

一、佔位符

  1. 定義:顧名思義,佔位符就是先佔住一個固定的位置,等著你再往裡面新增內容的符號
  2. 舉例:Console.WriteLine("{0}秒中是{1}天{2}小時{3}分鐘{4}秒",second ,day ,h ,min ,mod );
  3. 具體分解:Console.WriteLine("{0},{1}.......","匹配0","匹配1"),其中,{0},{1}就是字串中的佔位符,先站下位置
  4. 其他重點佔位符:
static void Main()   
         {
                   int i=12345;
                   Console.WriteLine("{0:C}",i);   //貨幣
                   Console.WriteLine("{0:D}",i);   //十進位制數
                   Console.WriteLine("{0:E}",i);    //科學技術法
                   Console.WriteLine("{0:F}",i);   // 浮點數表示法
                   Console.WriteLine("{0:G}",i);   //G或g General 常用格式
                   Console.WriteLine("{0:N}",i);   //N或n 用逗號分割千位的數字
         }

二、隱式轉換

  1. 隱式轉換:即資料的型別的轉換由編譯器自動進行的,不需要人工干預的資料轉換。
  2. 舉例:int型別的資料可以隱式的轉換為double型別的資料
double d = 5;
            int a = d;
            Console.WriteLine(a );
            Console.ReadKey();


        int a = 5;//可以執行
            double d = a;
            Console.WriteLine(d);
            Console.ReadKey();

  1. 分析原因:在賦值運算中,賦值號兩邊量的資料型別不同時,賦值號右邊量的型別將轉換為左邊量的型別。如果右邊量的資料型別長度比左邊長時,將丟失一部分資料,這樣會降低精度,丟失的部分按四捨五入向前舍入。
  2. 理解:往銀行存錢如果少一個小數點將是一件多麼不敢想象的事情。


            
三、顯示轉換

1.顯示轉換:與隱式轉換相反的資料型別的轉換,即需要人為強制干預的資料轉換。

2.程式碼展示:

例如,(int)5.5的結果是5;強制型別轉換的目的是使表示式的值的資料型別發生改變,從而使不同型別資料之間的運算能夠進行下去。

            double d = 5.5;
            int a = (int ) d;
            Console.WriteLine(d );
            Console.ReadKey();

3.用於強行將“表示式”的值轉換成“型別名”所表示的資料型別。

四、轉義符


1.一種特殊的字元常量;以反斜線"\"開頭,後跟一個或幾個字元。具有特定的含義,不同於字元原有的意義,故稱“轉義”字元。主要用來表示那些用一般字元不便於表示的控制程式碼。 它的作用是消除緊隨其後的字元的原有含義,用一些普通字元的組合來代替一些特殊字元,由於其組合改變了原來字元表示的含義,因此稱為“轉義”; 用可以看見的字元表示那不可以看見的字元, 如'\n'表示換行。

2.常見的轉義符及其含義:
    \’  單引號
    \” 雙引號
    \\ 反斜槓
    \0 空
    \a 警告(產生峰鳴)
    \b 退格
    \f 換頁
    \n 換行
    \r 回車
    \t 水平製表符
    \v 垂直製表符

 

五、型別轉換

1. Convert.ToInt32
該方式不僅可以將字串型別轉換為int,還可以將其他的型別轉換為int。

2.具體例子:
 

   static void Main(string[] args)
       {
            //讓使用者輸入姓名 語文 數學 英語 三門課的成績,
            //然後給使用者顯示:XX,你的總成績為XX分,平均成績為XX分

            Console.WriteLine("請輸入姓名");

            string name = Console.ReadLine();

            Console.WriteLine("請輸入語文成績");

            string strChinese = Console.ReadLine();

            Console.WriteLine("請輸入數學成績");

            string strMath = Console.ReadLine();

            Console.WriteLine("請輸入英語成績");

            string strEnglish = Console.ReadLine();

            double chinese = Convert.ToDouble(strChinese);//把字串型別的語文成績轉換為double型別的資料
        

            double math = Convert.ToDouble(strMath);

            double english = Convert.ToDouble(strEnglish);


            double sum = chinese + math + english;//計算總成績


            double avg = sum / 3;


            Console.WriteLine("{0}你好,你的總成績為{1},平均成績為{2:0.0}", name, sum, avg);
            Console.WriteLine("{0:0.0}", 34.555);

            Console.ReadKey();
    }

輸出結果:

運用到的知識點:

(1)接收使用者的輸入;

(2)將使用者輸入的內容進行轉換;

(3)轉換的目的是為了更好的運算,使其前後保持一致;

(4)當然還用到了佔位符。

 

六、加加減減

下面同過四個小例子展示,逐步分析他們之間的區別:(看完小例子後將非常的清楚的分清楚各個之間的關係

總結:前加/前減  都是先在自身的基礎上加1/減1;後加/後減  都是先取原值參與運算  然後再加上1/減去1.

            加加減減————分為前加和後加
            
            後加:
            int num=10;
            int number = 10 + num++;//先去原值 參與運算 最後再加上1
            Console.WriteLine(number);//number=20
            Console.WriteLine(num );//num=11
            Console.ReadKey();
            
            前加:
            int num = 10;
            int number = 10 + ++num;//先自身加1 然後再參與運算
            Console.WriteLine(number);//number=21
            Console.WriteLine(num);//num=11
            Console.ReadKey();
            
            前減
            int num = 10;
            int number = 10 + --num;//先自身減1 然後再參與運算
            Console.WriteLine(number);//number=19
            Console.WriteLine(num);//num=9
            Console.ReadKey();
           
            後減
            int num = 10;
            int number = 10 + num--;//先取原值參與運算,再自身減1
            Console.WriteLine(number);//number=20
            Console.WriteLine(num);//num=9
            Console.ReadKey();

七、接收使用者輸入的內容

例項:(該例項使用者可以隨意的輸入你想要計算的秒數)

優點:沒把程式碼寫死,使用者可以根據自己想要的方式和數字輸入,非常的靈活。

難點:在於型別的轉換上。

            Console.WriteLine("請輸入秒數:");
            int second = Convert.ToInt32(Console .ReadLine ());
            int day = second / (60 * 60 * 24);//得到的天數
            int sec = second % (60 * 60 * 24);//剩餘的秒數
            int h = sec / (60 * 60);//得到小時數
            sec = sec % (60 * 60);//變數的重新賦值,再次得到餘數的秒數
            int min = sec / 60;//得到分鐘數
            int mod = sec % 60;//最後的秒數
            Console.WriteLine("{0}秒中是{1}天{2}小時{3}分鐘{4}秒",second ,day ,h ,min ,mod );
            Console.ReadLine();
        }

八、總結

其實學習的時候光看視訊感覺很多都會了,每當自己用到的時候,才知道原來理解上的一點點小小的瑕疵都將是致命的,所以,學習要建立在實踐的基礎上,多多的理解,一定要理解透,否則將會很可怕。當然我們每天積累一點點,這個也是可怕的,哈哈哈。還望各位大神的指點。