C#程式設計基礎第六課:C#中三元運算子的初級使用和巢狀
阿新 • • 發佈:2018-11-13
知識點:三元運算子的使用。
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語句使用。
三元運算子: 適用於簡單的賦值語句,適用於判斷有兩個結果的情況,可讀性較差。