嵌套的if語句 是什么
if語句里面還有if語句,就叫嵌套if語句。比如我們先判斷一個人是否在地球上---條件滿足---嵌套if判斷這個人是否在北半球---條件滿足---嵌套if判斷這個人是否是男人!
這就是一個簡單的3層嵌套if判斷:
if(一個人在地球上==true)
{
if(這個人在北半球==true)
{
if(這個人是男人==true)
{
嵌套完成,只有這3個條件都滿足才可以。嵌套主要起這個作用。
}
}
}
嵌套的意思
if語句的嵌套當if語句中的執行語句又是if語句時,則構成了if 語句嵌套的情形.其一般形式可表示如下:if(表達式) if語句; 或者為if(表達式) if語句; else if語句; 在嵌套內的if語句可能又是if-else型的,這將會出現多個if和多個else重疊的情況,這時要特別注意if和else的配對問題.例如:if(表達式1)if(表達式2)語句1;else語句2;其中的else究竟是與哪一個if配對呢?應該理解為:還是應理解為:if(表達式1) if(表達式1)if(表達式2) if(表達式2)語句1; 語句1;else else語句2; 語句2; 為了避免這種二義性,C語言規定,else 總是與它前面最近的if配對,因此對上述例子應按前一種情況理解.比較兩個數的大小關系.void main(){int a,b;printf("please input A,B:");scanf("%d%d",&a,&b);if(a!=b)if(a>b) printf("A>B\n");else printf("AB\n");else printf("A。
if語句有幾種表達方式
*語句的一般格式if(表達式) {語句組1;}[else{語句組2;} ](1)if語句中的“表達式”必須用“(”和“)”括起來.(2)else子句(可選)是if語句的一部分,必須與if配對使用,不能單獨使用.(3)當if和else下面的語句組,僅由一條語句構成時,也可不使用復合語句形式(即去掉花括號).*語句的執行過程(1)缺省else子句時當“表達式”的值不等于0(即判定為“邏輯真”)時,則執行語句組1,否則直接轉向執行下一條.(2)指定else子句時當“表達式”的值不等于0(即判定為“邏輯真”)時,則執行語句組1,然后轉向下一條語句;否則,執行語句組2.如圖4-1(b)所示.*語句的嵌套與嵌套匹配原則if語句允許嵌套.所謂if語句的嵌套是指,在“語句組1”或(和)“語句組2”中,又包含有if語句的情況.if語句嵌套時,else子句與if的匹配原則:與在它上面、距它最近、且尚未匹配的if配對.為明確匹配關系,避免匹配錯誤,強烈建議:將內嵌的if語句,一律用花括號括起來.。
if--else 嵌套 怎么理解
嵌套的if-else語句 我們可以在if語句內嵌套if語句。
同樣,我們也可以在if語句內嵌套if-else語句,在if-else語句內嵌套if語句,以及在if-else語句內嵌套if-else語句。這種靈活性也很容易讓人混淆程序,因此需要看幾個示例。
下面的示例是在if語句內嵌套if-else語句。if(coffee == 'y') if(donuts == 'y') cout else cout 僅當coffee的測試結果返回true時,才執行對donuts的測試,因此輸出消息反映的是每種情況下的正確狀況,但這種嵌套結構很容易造成混淆。
如果用不正確的縮進編寫完全相同的代碼,我們就可能陷入錯誤的結論:if(coffee == 'y') if(donuts == 'y') cout 這里的錯誤還容易看出來,但在更復雜的if結構中,我們就需要記住關于哪個if擁有哪個else的規則。注意:else總是屬于前面最近的、還沒有對應else的if。
對于復雜的情形,我們都可以應用這條規則來處理。當編寫程序時,使用大括號肯定能使代碼更清楚。
在上面所示的簡單情形中,大括號實際上是不必要的,但我們也可以將該示例寫成如下形式:if(coffee == 'y') { if(donuts == 'y') cout else cout } 現在的程序應該是絕對清楚的。既然我們已經知道前面那條規則,就很容易理解在if-else語句內嵌套if的情形。
if(coffee == 'y') { if(donuts == 'y') cout } lse if(tea == 'y') cout 這里的大括號是必需的。如果將其省略,則else將屬于對donuts進行測試的if。
在這類情況下,通常很容易忘記添加大括號,從而產生難以發現的錯誤。包含這類錯誤的程序可以正確編譯,有時候甚至還能產生正確的結果。
如果我們刪除本示例中的大括號,則僅當coffee和donuts都等于'y'時(因此不執行if(tea = = 'y')測試)才能得到正確結果。下面是在if-else語句內嵌套if-else語句的示例。
這種結構即使只有一級嵌套,看起來也可能非常混亂。if(coffee == 'y') if(donuts == 'y') cout else cout else if(tea == 'y') cout cout 即使有正確的縮進,該程序的邏輯也非常不明顯。
大括號不是必需的,因為前面學習的規則能夠驗證該程序的正確性,但如果加上大括號,該程序看起來將更加清楚。if(coffee == 'y') { if(donuts == 'y') cout else cout } else { if(tea == 'y') cout cout。
if語句里面可以嵌套for循環嗎
C語言里if語句里是可以嵌套for循環的(if語句里可以放C語言里的任意的執行語句)。
舉例說:
char yn;
int i;
printf("需要打印1到10之間的所有奇數嗎(Y/N)?\n");
scanf("%c",&yn);
if(yn=='Y'||yn=='y')
{
for(i=1;iprintf("%d ",i);
printf("\n");
}
else
printf("那就不打印了\n");