C# if…else 語句

2022-09-19 16:29 更新

C# 判斷 C# 判斷

一個 if 語句 后可以跟一個可選的 else 語句,else 語句在布爾表達(dá)式為假時執(zhí)行。


語法

C# 中 if...else 語句的語法:

if(boolean_expression){
   /* 如果布爾表達(dá)式(boolean_expression)為真將執(zhí)行的語句【1】 */
}
else{
  /* 如果布爾表達(dá)式為假將執(zhí)行的語句【2】 */
}
//后續(xù)代碼【3】

如果布爾表達(dá)式為 true,則執(zhí)行 if 塊內(nèi)的代碼。如果布爾表達(dá)式為 false,則執(zhí)行 else 塊內(nèi)的代碼。

 可以理解為,如果條件判斷為真,執(zhí)行【1】和【3】的語句,如果條件判斷為假,執(zhí)行【2】和【3】的語句。


流程圖




實(shí)例

using System;

namespace DecisionMaking{    
    class Program{
        static void Main(string[] args){
            /* 局部變量定義 */
            int a = 100;

            /* 檢查布爾條件 */
            if (a < 20){
                /* 如果條件為真,則輸出下面的語句 */
                Console.WriteLine("a 小于 20");
            }
            else{
                /* 如果條件為假,則輸出下面的語句 */
                Console.WriteLine("a 大于 20");
            }
            Console.WriteLine("a 的值是 {0}", a);
            Console.ReadLine();
        }
    }
}

當(dāng)上面的代碼被編譯和執(zhí)行時,它會產(chǎn)生下列結(jié)果:

a 大于 20
a 的值是 100

if...else if...else 語句

一個 if 語句后可跟一個可選的 else if...else 語句,這可用于測試多種條件。

當(dāng)使用 if...else if...else 語句時,以下幾點(diǎn)需要注意:

  • 一個 if 后可跟零個或一個 else,它必須在任何一個 else if 之后。
  • 一個 if 后可跟零個或多個 else if,它們必須在 else 之前。
  • 一旦某個 else if 匹配成功,其他的 else if 或 else 將不會被測試。

語法

C# 中的 if...else if...else 語句的語法:

if(boolean_expression 1){
   /* 當(dāng)布爾表達(dá)式 1 為真時執(zhí)行【1】 */
}
else if( boolean_expression 2){
   /* 當(dāng)布爾表達(dá)式 2 為真時執(zhí)行【2】 */
}
else if( boolean_expression 3){
   /* 當(dāng)布爾表達(dá)式 3 為真時執(zhí)行【3】 */
}
else {
   /* 當(dāng)上面條件都不為真時執(zhí)行【4】 */
}
//【5】后續(xù)代碼

如果布爾表達(dá)式1為 true,則執(zhí)行 if 塊內(nèi)的代碼。如果布爾表達(dá)式1為 false,則進(jìn)入else if的判斷(布爾表達(dá)式2),如果布爾表達(dá)式2為true,則執(zhí)行相對應(yīng)的else if 塊內(nèi)的代碼,如果所有的ifelse if語句的布爾表達(dá)式都為false,則執(zhí)行else的代碼。

可以理解為:
如果布爾表達(dá)式1為真,執(zhí)行【1】和【5】的語句;
如果布爾表達(dá)式1為假,執(zhí)行布爾表達(dá)式2,

如果布爾表達(dá)式2為真,執(zhí)行【2】和【5】的語句;

如果布爾表達(dá)式2為假,執(zhí)行布爾表達(dá)式3,

如果布爾表達(dá)式3為真,執(zhí)行【3】和【5】的語句;

如果上述的布爾表達(dá)式都為假(布爾表達(dá)式3為假),執(zhí)行【4】和【5】的語句。

 注意,如果仔細(xì)觀察上面的“可以理解為”就會發(fā)現(xiàn),執(zhí)行完一個if語句后,不會再執(zhí)行后續(xù)的if語句,例如:

using System;

namespace DecisionMaking{
    class Program{
        static void Main(string[] args){

            int a = 100;
            if (a == 10){
                Console.WriteLine("a 的值等于100");
            }
            else if (a  >0){
                Console.WriteLine("a 的值大于0");
            }
            else if (a > 30){
                Console.WriteLine("a 的值大于30");
            }
            else{
                Console.WriteLine("沒有匹配的值");
            }
            Console.WriteLine("代碼執(zhí)行結(jié)束");
        }
    }
}

該代碼執(zhí)行完第一個else if語句后就結(jié)束了,不會進(jìn)入其他的判斷語句,哪怕其他判斷語句也成立。

所以在日常開發(fā)過程中一定要注意:

  1. if語句,else語句之間的條件不要出現(xiàn)包含的情況(也就是存在使if語句成立,剩下的else if語句也成立的情況,如本例代碼,100既等于100,又大于0,還大于30)。
  2. 書寫多分支if語句的時候要注意順序(本例代碼中,只執(zhí)行最先到達(dá)的代碼(也就是if語句,順序先后可能會導(dǎo)致結(jié)果不同?。?。
  3. else語句包含的是未出現(xiàn)的情況(也就是上面的所有表達(dá)式都不成立的情況),一定要做好判斷!


流程圖

if...else if else(三分支)



多個else if語句的流程圖




實(shí)例

using System;

namespace DecisionMaking{
    class Program{
        static void Main(string[] args){
            /* 局部變量定義 */
            int a = 100;

            /* 檢查布爾條件 */
            if (a == 10){
                /* 如果 if 條件為真,則輸出下面的語句 */
                Console.WriteLine("a 的值是 10");
            }
            else if (a == 20){
                /* 如果 else if 條件為真,則輸出下面的語句 */
                Console.WriteLine("a 的值是 20");
            }
            else if (a == 30){
                /* 如果 else if 條件為真,則輸出下面的語句 */
                Console.WriteLine("a 的值是 30");
            }
            else{
                /* 如果上面條件都不為真,則輸出下面的語句 */
                Console.WriteLine("沒有匹配的值");
            }
            Console.WriteLine("a 的準(zhǔn)確值是 {0}", a);
            Console.ReadLine();
        }
    }
}

當(dāng)上面的代碼被編譯和執(zhí)行時,它會產(chǎn)生下列結(jié)果:

沒有匹配的值
a 的準(zhǔn)確值是 100

C# 判斷C# 判斷


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號