玩過游戲的朋友們都知道,游戲結局一般會有好些個,只有完成相應的條件,那么才會解鎖對應的結局。今天,這篇文章來學習一下關于 C# 語言中的條件判斷語句。
一、條件判斷語句
1、條件運算符
在第三天的學習記錄中,在其他運算符中,有提到一種條件判斷的條件運算符 exp?x:y
如果 emp
判定結果為 true,那么結果將會返回 x,否則返回 y。
int a = 2;
int b = 3;
string str = a > b ? "a比b大" : "b比a大";
這里的條件運算符和下面將要介紹的 if-else
語句大同小異。
2、判斷語句
(1)if
語句
在編程語言中,一個 if
語句跟著一個布爾表達式和一個或者多個的程序語句:
if(emp)
{
// 語句 1
// 語句 2
// ...
}
只有當布爾表達式 emp
的結果為 true
,才會執(zhí)行 if
語句中的程序語句,否則的話,就會跳過 if
語句。
(2)if-else
語句
一般的判斷,預想有兩個或者多個的結果。比如上面提到的條件運算符,比較兩個數值的大小,如何都需要輸出一個結果。
因此,if
語句在布爾表達式為 true
的時候,輸出其中內容;而 else
語句是在當布爾表達式為 false
的時候,輸出其中的內容。
int a = 3;
int b = 2;
if(a > b){
Console.WriteLine("a 大于 b ");
}
else{
Console.WriteLine("a 小于 b ");
}
很容易看出,這段代碼的邏輯其實有一點問題,如果 a 和 b 是一樣的值,哪個輸出結果都是錯誤的。這時候在一整個條件語句,可能需要多個判斷語句。多個判斷語句,就需要使用 if - else if - else
語句。
if(a = b){
Console.WriteLine("a 等于 b");
}
else if(a > b){
Console.WriteLine("a 大于 b");
}
else{
Console.WriteLine("a 小于b");
}
這樣一來,整個邏輯就顯得清楚和明確了。
(3)嵌套判斷
在滿足某個前提的情況下,判斷是否滿足另外一個前提。這時候就需要使用嵌套語句來多重判斷。
例如:你想去網吧玩游戲,第一個條件首先年齡要大等于18歲,其次的條件是錢包里的錢要帶足了。要不然,就不能進去玩游戲了。
if(age >= 18){
if(money >= 10){
Console.WriteLine("我選亞索!");
}
}
滿足了兩個條件了,那么就可以游戲里面快樂地哈撒給了!
(4)switch 語句
如果需要判斷的條件有十幾二十個的,那么如果一直使用 else if
來判斷,會使得代碼看上去臃腫冗雜。
switch
語句允許測試當一個變量等于多個值時的情況。
// 語法
switch(expression){
case exp1:
statement1;
break;
case exp2:
statement2;
break;
// ...
case expn:
statementn;
break;
default:
d_statement;
break;
}
switch
語句后面的expression
必須是一個整數或枚舉類型,或者是一個 class 類型。- 一個
switch
語句中可以有任意個case
語句,case
后面的值一定是和expression
是同類型的,而且必須是常量。 default
語句可有可無,當所有的case
語句都不滿足,如果存在,就會執(zhí)行default
的語句;如果不存在,輸出一個空值。- C# 不支持從一個
case
貫穿到另一個case
語句。因此,break
關鍵詞是一定要的。遇到第一個break
則就會結束整個switch
語句。
(4)嵌套 switch
語句
switch
語句同樣也是可以嵌套的。
switch(num1){
case 1:
Console.WriteLine("這個 1 是屬于外部的");
switch(num2){
case 1:
Console.WriteLine("這個 1 是屬于內部的");
break;
}
break;
}
一個 switch
語句中嵌套了另一個 switch
語句,即使外部和內部的 case
常量值包含相同的值,是不會產生矛盾的。
值得注意的是,內部的 case
最后跟了 break
語句,外部的 case
也一定不能忘記 break
關鍵詞。
二、總結
到這里,關于 C# 的條件判斷語句的學習記錄就已經結束了。
下一篇文章,將開始學 C# 中的循環(huán)語句。