一個 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】的語句。
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 語句,這可用于測試多種條件。
當(dāng)使用 if...else if...else 語句時,以下幾點(diǎn)需要注意:
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)的代碼,如果所有的if和else 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ā)過程中一定要注意:
- if語句,else語句之間的條件不要出現(xiàn)包含的情況(也就是存在使if語句成立,剩下的else if語句也成立的情況,如本例代碼,100既等于100,又大于0,還大于30)。
- 書寫多分支if語句的時候要注意順序(本例代碼中,只執(zhí)行最先到達(dá)的代碼(也就是if語句,順序先后可能會導(dǎo)致結(jié)果不同?。?。
- else語句包含的是未出現(xiàn)的情況(也就是上面的所有表達(dá)式都不成立的情況),一定要做好判斷!
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
更多建議: