兩個問題:
①
格式如下:
if(..............)
if(..............)
if(..............)
{........}
陳述句
問一下這個陳述句還算在if陳述句中嗎?需要執行嗎?如果需要執行,那么屬于第幾個if中呢?
②例題:
#include<stdio.h>
void main(){
int i=1,j=3,k=5;
do{
if(i%j==0)
if(i%k==0){
printf("%d\n",i);
break;}
i++;
}while(i!=0);
}
求問這個i++;是屬于if陳述句中的嗎?如果不是的話,第一個if陳述句到哪就已經停止了?有什么判別方法嗎?
uj5u.com熱心網友回復:
不屬于。這語言等價的結構是這樣的:#include<stdio.h>
void main() {
int i = 1, j = 3, k = 5;
do {
if (i % j == 0)
{
if (i % k == 0) {
printf("%d\n", i);
break;
}
}
i++;
} while (i != 0);
}
uj5u.com熱心網友回復:
C語言中陳述句是以分號;或者大括號{}結束,所以問題1中的陳述句不屬于if陳述句中。問題2中的i最終結果是15
uj5u.com熱心網友回復:
這個i++不是if陳述句中的, 那個大括號里面的是兩個if陳述句的作用域, 看大括號啊, 其實第一個if陳述句最好也加上大括號,或者改寫兩個if陳述句為一個與的判斷uj5u.com熱心網友回復:
從問題2的結果可以看出要所有的if陳述句滿足條件才執行輸出i,所以i一直累加到15,15可以整除j和k。uj5u.com熱心網友回復:
第一題:這個陳述句是屬于if陳述句中的,如果要執行,必須是前面三個if條件全滿足才會執行到。第二題:i++;不屬于if陳述句中的。c是以“;”號表示一條陳述句的結束,所以前面兩個if之間沒有結束符號,就表示這是同一條并列陳述句。
uj5u.com熱心網友回復:
1的意思是if的條件成立,就執行一條if陳述句,所以最后那個大括號屬于第三條(第三層)if陳述句的執行部分2 i++不是if的執行陳述句,上面的情況和1類似 是if為true,則執行一個if陳述句,然后如果這第二層if為真,則執行下一條陳述句(或是下一個大括號內的所有陳述句), 所以這兩重if陳述句走到大括號結束就完了。判斷方法就是if(xxx)之后只管一條陳述句,不用大括號的話
if (xx)
s1; // if到這兒就完了
s2;
uj5u.com熱心網友回復:
把第二個程式稍加修改,樓主去試驗下,就明白了:int main(int argc, char* argv[])
{
int i=1,j=3,k=5,m=4;
do{
if(i%j==0)
if(i%k==0)
if(i%m==0)
{
printf("%d\n",i);
break;
}
i++;
}while(i!=0);
system("pause");
return 0;
}
uj5u.com熱心網友回復:
int main(int argc, char* argv[])
{
int i=1,j=3,k=5,m=4;
do{
if(i%j==0)
if(i%k==0)
if(i%m==0)//這三個if陳述句,等價于:if(i%j==0 && i%k==0 && i%m==0)
{
printf("%d\n",i);
break;
}
i++;
}while(i!=0);
system("pause");
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/226558.html
標籤:C語言
