App下載

C# 編程語言學(xué)習(xí)系列(五)

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

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

一、條件判斷語句

1、條件運(yùn)算符

在第三天的學(xué)習(xí)記錄中,在其他運(yùn)算符中,有提到一種條件判斷的條件運(yùn)算符 exp?x:y 如果 emp 判定結(jié)果為 true,那么結(jié)果將會返回 x,否則返回 y。

int a = 2;
int b = 3;
string str = a > b ? "a比b大" : "b比a大";

這里的條件運(yùn)算符和下面將要介紹的 if-else 語句大同小異。

2、判斷語句

(1)if 語句

在編程語言中,一個(gè) if 語句跟著一個(gè)布爾表達(dá)式和一個(gè)或者多個(gè)的程序語句:

if(emp)
{
    // 語句 1
    // 語句 2
    // ...
}

只有當(dāng)布爾表達(dá)式 emp 的結(jié)果為 true,才會執(zhí)行 if 語句中的程序語句,否則的話,就會跳過 if 語句。

(2)if-else語句

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

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

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

很容易看出,這段代碼的邏輯其實(shí)有一點(diǎn)問題,如果 a 和 b 是一樣的值,哪個(gè)輸出結(jié)果都是錯(cuò)誤的。這時(shí)候在一整個(gè)條件語句,可能需要多個(gè)判斷語句。多個(gè)判斷語句,就需要使用 if - else if - else 語句。

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

這樣一來,整個(gè)邏輯就顯得清楚和明確了。

(3)嵌套判斷

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

例如:你想去網(wǎng)吧玩游戲,第一個(gè)條件首先年齡要大等于18歲,其次的條件是錢包里的錢要帶足了。要不然,就不能進(jìn)去玩游戲了。

if(age >= 18){
    if(money >= 10){
        Console.WriteLine("我選亞索!");
    }
}

滿足了兩個(gè)條件了,那么就可以游戲里面快樂地哈撒給了!

(4)switch 語句

如果需要判斷的條件有十幾二十個(gè)的,那么如果一直使用 else if 來判斷,會使得代碼看上去臃腫冗雜。

switch 語句允許測試當(dāng)一個(gè)變量等于多個(gè)值時(shí)的情況。

// 語法
switch(expression){
    case exp1:
        statement1;
        break;
    case exp2:
        statement2;
        break;
    // ...
    case expn:
        statementn;
        break;
    default:
        d_statement;
        break;
}

  • switch 語句后面的 expression 必須是一個(gè)整數(shù)或枚舉類型,或者是一個(gè) class 類型。
  • 一個(gè) switch 語句中可以有任意個(gè) case 語句,case 后面的值一定是和 expression 是同類型的,而且必須是常量。
  • default 語句可有可無,當(dāng)所有的 case 語句都不滿足,如果存在,就會執(zhí)行 default的語句;如果不存在,輸出一個(gè)空值。
  • C# 不支持從一個(gè) case 貫穿到另一個(gè) case 語句。因此,break 關(guān)鍵詞是一定要的。遇到第一個(gè) break 則就會結(jié)束整個(gè) switch 語句。

(4)嵌套 switch 語句

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

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

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

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

二、總結(jié)

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

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

C#

0 人點(diǎn)贊