1. 程式人生 > >C#程式設計基礎第六課:C#中三元運算子的初級使用和巢狀

C#程式設計基礎第六課:C#中三元運算子的初級使用和巢狀

知識點:三元運算子的使用。

1、三元運算子

三元運算子的初級使用:

符號: ?:

舉例:int c=bool ? a : b

當bool=true,c=表示式a,當bool=false,c=表示式b。

  • 三元運算子?:是 if~else 語句的簡寫形式
  • 書寫格式如下:變數 = 布林表示式 ? 語句1 : 語句2 ;  
  • 如果問號“?”前的表示式為真,則計算語句 1 的值,並將結果賦值給變數,否則將計算語句 2 的值,並將結果賦值給變數
  • 特點:程式碼比較簡潔, 並且有一個返回值,但可讀性較差。

程式碼練習:輸入整數,輸出它的絕對值

        static void Main(string[] args)
        {
            //輸入一個整數,輸出它的絕對值
            //輸出一句話,提示使用者輸入資訊:
            Console.Write("請輸入整數a:");
            //宣告一個int型別變數,用來存放使用者輸入的資料資訊
            int a = int.Parse(Console.ReadLine());
            int b;//宣告一個整型變數b,用來存放整數a的絕對值
            if (a >= 0)
            {
                b = a;//如果a大於等於0,那麼它的絕對值就是它本身,所以將a直接賦值給b
            }
            else
            {
                b = -a;//如果a小於0,那麼它的絕對值就是它的負數,所以將-a賦值給b
            }
            Console.WriteLine("整數a的絕對值是" + b);
            Console.ReadLine();
        }

利用三元運算子來完成:

        static void Main(string[] args)
        {
            //輸入一個整數,輸出它的絕對值
            //輸出一句話,提示使用者輸入資訊:
            Console.Write("請輸入整數a:");
            //宣告一個int型別變數,用來存放使用者輸入的資料資訊
            int a = int.Parse(Console.ReadLine());
            int b;//宣告一個整型變數b,用來存放整數a的絕對值
            b = a >= 0 ? a : -a;//將三元運算子的結果賦值給變數b(如果a大於等於0,返回a,並將結果賦值給b,否則返回-a,並將結果賦值給b)
            Console.WriteLine("整數a的絕對值是:"+b);
            Console.ReadLine();
         }

三元運算子的巢狀使用:

符號: ?  :  ? :

可以藉助小括號,進行優先順序設定

程式碼練習:輸入三個整數,輸出較大的數

        static void Main(string[] args)
        {
            //輸入三個整數,輸出較大的數(用三元運算子完成)
            Console.Write("請輸入整數a:");
            int a = int.Parse(Console.ReadLine());
            Console.Write("請輸入整數b:");
            int b = int.Parse(Console.ReadLine());
            Console.Write("請輸入整數c:");
            int c = int.Parse(Console.ReadLine());
            int max;//宣告一個變數max,用來存放較大的數值
            max=(a>b?a:b)>c?(a > b ? a : b):c;//將三元運算子的結果,賦值給變數max
            Console.WriteLine("較大的數是:"+max);
            Console.ReadLine();
       }

2、三元運算子的優先順序

舉例:求以下輸出結果:

            int a= 3 < 8 ? (9 < 6 ? 7 : 5) : 2 > 0 ? 4 : 1;
            Console.WriteLine(a);

//求3<8?(9<6?7:5):2>0?4:1
//括號的優先順序是最高的,所以先算括號裡的(9<6?7:5)得到5,
//然後算式變成 3<8?5:2>0?4:1;
//?:條件運算子,三目運算是從右往左分組計算的,所以先計算2>0?4:1,得到4;
//然後算式變成3<8?5:4,這就很easy啦,直接得到結果5;

 

3、分支語句總結:

if語句: 適合判斷一些連續的值,可與else或else if配合使用。

switch語句: 適合判斷一些等值情況。在使用的時候要注意每個case語句之後都必須有break語句,可配合default語句使用。

三元運算子: 適用於簡單的賦值語句,適用於判斷有兩個結果的情況,可讀性較差。