c語言提供了三種形式的if語句:
專注于為中小企業(yè)提供網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)靈山免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
1、if(表達(dá)式)語句。
例如:if(xy)printf("%d",x);
此時(shí),如果表達(dá)式為真,則執(zhí)行printf語句。
2、if(表達(dá)式)語句1 else 語句2
例如:
if(xy)printf("%d",x);
else?printf("%d",y);
此時(shí),如果xy成立為真,則執(zhí)行語句printf("%d",x),然后直接跳過else,同時(shí)也跳過語句printf("%d",y),去執(zhí)行之后的語句。
如果xy不成立為假,則不執(zhí)行語句printf("%d",x),執(zhí)行語句printf("%d",x)。
3、if(表達(dá)式1)語句1
else if(表達(dá)式2)語句2
else if(表達(dá)式3)語句3
else if(表達(dá)式m)語句m
else 語句 n
此時(shí),哪個(gè)表達(dá)式為真,則運(yùn)行哪個(gè)if后面的語句。如表達(dá)式3成立為真,執(zhí)行語句3。
在每個(gè)語句中,可以有多個(gè)語句,但需要加上大括號(hào)
例:if(xy){printf("%d",x);break;}
IF函數(shù)的參數(shù):
(1)Logical_test 表示計(jì)算結(jié)果為 TRUE 或 FALSE 的任意值或表達(dá)式。
例如,A10=100 就是一個(gè)邏輯表達(dá)式,如果單元格 A10 中的值等于 100,表達(dá)式即為 TRUE,否則為 FALSE。本參數(shù)可使用任何比較運(yùn)算符(=(等于)、(大于)、=(大于等于)、=(小于等于等運(yùn)算符))。
(2)Value_if_true表示 logical_test 為 TRUE 時(shí)返回的值。
例如,如果本參數(shù)為文本字符串“預(yù)算內(nèi)”而且
logical_test 參數(shù)值為 TRUE,則 IF 函數(shù)將顯示文本“預(yù)算內(nèi)”。如果 logical_test 為 TRUE 而
value_if_true 為空,則本參數(shù)返回 0。
(3)Value_if_false表示 logical_test 為 FALSE 時(shí)返回的值。
例如,如果本參數(shù)為文本字符串“超出預(yù)算”而且
logical_test 參數(shù)值為 FALSE,則 IF 函數(shù)將顯示文本“超出預(yù)算”。如果 logical_test 為 FALSE 且忽略了
value_if_false(即 value_if_true 后沒有逗號(hào))。
main() {
int a=1,b=2,c=5,d=4,x=0; if(ab) { if(cd) x=1;
else if(ac) { if(bd) x=2;
else x=3; }
else x=6; }
else x=7;
printf("%d",x);
getch();
}
以上代碼已經(jīng)整理好了。因?yàn)榈谝籭f已經(jīng)不滿足,直接執(zhí)行最后一個(gè)else,所以,結(jié)果是7. 針對(duì)這種問題,最好的方法是先用大括號(hào)把各個(gè)子句分好。
if連用的理解:兩個(gè)if連用有兩種方式,第一種是if……if連用,第二種是if語句的嵌套。
if……if連用:每一個(gè)if語句都是獨(dú)立的,為了編碼的規(guī)范,很少使用if……if這樣的格式,一般使用if……else或者使用switch……case語句代替。
if語句的嵌套:所謂if語句嵌套即第1個(gè)if的if子句依然是if語句,第2個(gè)if的if子句依然是if語句 ,依次類推。
解答:
因?yàn)閍=2,b=3,所以ab。
因?yàn)榈谝粋€(gè)if為假,故第二個(gè)if無法執(zhí)行,else無法執(zhí)行。
故執(zhí)行printf("over!\n")。
然后編譯運(yùn)行,結(jié)果為:over!換行。
擴(kuò)展資料:
c語言三種if語句的形式:
if(表達(dá)式)語句。例如:if(xy)printf("%d",x)
if(表達(dá)式)語句1 else 語句2。例如:if(xy)printf("%d",x);else?printf("%d",y);
if(表達(dá)式1)語句1,else if(表達(dá)式2)語句2,else if(表達(dá)式m)語句m,else 語句 n。
在每個(gè)語句中,可以有多個(gè)語句,但需要加上大括號(hào),例如:if(xy){printf("%d",x);break;}
參考資料:百度百科-if語句
int?main(void)
{
int?a=2,b=-1,c=2;
if?(ab) //第1個(gè)if
if?(b0)? //第2個(gè)if
c?=?0;
else?
c++;
printf("%d\n",c);??//輸出結(jié)果為:?2
return?0;
}
/**分析如下:
你的理解是不對(duì)的,你可能還沒有弄明白else與if的匹配規(guī)則:else總是與其最近的沒有被else匹配的if相匹配,有點(diǎn)繞,以你的程序?yàn)槔治?
else的上面有兩個(gè)if,與其最近的是第2個(gè)if,這個(gè)if還沒有else與其匹配,那么else就與該if匹配,如果我們把上面的語句修改如下:
if?(ab) //第1個(gè)if
if?(b0)? //第2個(gè)if
c?=?0;
else?c=1;???//這里增加了一個(gè)else語句
else
c++;
如果改成了上面這樣的話,由于第2個(gè)if已經(jīng)有else與其匹配了,那里else?c++;這條語句就是與第1個(gè)if匹配了。
*/
希望對(duì)你理解if...else語句有所幫助吧。