App下載

C# 編程語言學習系列(五)

夢在深巷 2021-12-10 16:35:15 瀏覽數(shù) (2497)
反饋

玩過游戲的朋友們都知道,游戲結(jié)局一般會有好些個,只有完成相應(yīng)的條件,那么才會解鎖對應(yīng)的結(jié)局。今天,這篇文章來學習一下關(guān)于 C# 語言中的條件判斷語句。

一、條件判斷語句

1、條件運算符

在第三天的學習記錄中,在其他運算符中,有提到一種條件判斷的條件運算符 exp?x:y 如果 emp 判定結(jié)果為 true,那么結(jié)果將會返回 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 的結(jié)果為 true,才會執(zhí)行 if 語句中的程序語句,否則的話,就會跳過 if 語句。

(2)if-else語句

一般的判斷,預(yù)想有兩個或者多個的結(jié)果。比如上面提到的條件運算符,比較兩個數(shù)值的大小,如何都需要輸出一個結(jié)果。

因此,if 語句在布爾表達式為 true 的時候,輸出其中內(nèi)容;而 else 語句是在當布爾表達式為 false 的時候,輸出其中的內(nèi)容。

int a = 3;
int b = 2;
if(a > b){
    Console.WriteLine("a 大于 b ");
}
else{
    Console.WriteLine("a 小于 b ");
}

很容易看出,這段代碼的邏輯其實有一點問題,如果 a 和 b 是一樣的值,哪個輸出結(jié)果都是錯誤的。這時候在一整個條件語句,可能需要多個判斷語句。多個判斷語句,就需要使用 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)嵌套判斷

在滿足某個前提的情況下,判斷是否滿足另外一個前提。這時候就需要使用嵌套語句來多重判斷。

例如:你想去網(wǎng)吧玩游戲,第一個條件首先年齡要大等于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 必須是一個整數(shù)或枚舉類型,或者是一個 class 類型。
  • 一個 switch 語句中可以有任意個 case 語句,case 后面的值一定是和 expression 是同類型的,而且必須是常量。
  • default 語句可有可無,當所有的 case 語句都不滿足,如果存在,就會執(zhí)行 default的語句;如果不存在,輸出一個空值。
  • C# 不支持從一個 case 貫穿到另一個 case 語句。因此,break 關(guān)鍵詞是一定要的。遇到第一個 break 則就會結(jié)束整個 switch 語句。

(4)嵌套 switch 語句

switch 語句同樣也是可以嵌套的。

switch(num1){
    case 1:
        Console.WriteLine("這個 1 是屬于外部的");
        switch(num2){
            case 1:
                Console.WriteLine("這個 1 是屬于內(nèi)部的");
                break;
        }
        break;
}

一個 switch 語句中嵌套了另一個 switch 語句,即使外部和內(nèi)部的 case 常量值包含相同的值,是不會產(chǎn)生矛盾的。

值得注意的是,內(nèi)部的 case 最后跟了 break 語句,外部的 case 也一定不能忘記 break 關(guān)鍵詞。

二、總結(jié)

到這里,關(guān)于 C# 的條件判斷語句的學習記錄就已經(jīng)結(jié)束了。

下一篇文章,將開始學 C# 中的循環(huán)語句。

C#

0 人點贊