1樓:匿名使用者
printf("請輸入a的值");
scanf("%d",&a);
if(a<10)//a=0的時候,明顯符合a<10條件,但是不符合裡面巢狀的a>1條件,不做任何操作。
if(a>1) t=1;
else t=2;
printf("請輸入a的值");
scanf("%d",&a);
if(a<10)//a=100,第一步驗證就不符合條件,又沒有else語句對應,也是什麼都不做
if(a>1) t=1;
else t=2;
我還是加上第二題的實戰圖吧:
我初始化t為99999了,防止輸出未初始化的變數。可以看到99999並沒有改變。也就是說a=100的時候,沒有影響到t。不要看死書了,按自己的邏輯理解吧。
總之看if 的巢狀,else總是與最近的if成對。然後自己加大括號對好格式,用手寫在紙上畫明瞭一點。希望能幫到你!
2樓:新新
把大括號加上就明瞭了
#include
void mian()
}else
}下面自己學著加一下括號
3樓:匿名使用者
我擦,這種問題有什麼好問的,自己執行一下不就知道了,再說你啥都不返回,你想問什麼結果
c語言裡面if語句的巢狀看不懂~
4樓:匿名使用者
四個條件都滿足則執行命令,這不用if語句巢狀。如果是滿足每一個條件就分別執行一個命令才用if語句巢狀。
你這寫一條if 語句即可。如下
if(條件1&&條件2&&條件3&&條件4)其實,用四層無執行語句的if語句巢狀,與這個是相同的。
if(條件1)}}}
5樓:匿名使用者
if(a==1)else(a==2)else如果a=1則b=1
如果a!=1,a=2則b=2
如果a!=1,a!=2則b=3
6樓:匿名使用者
如果(滿足條件) 就執行if {}裡面的語句 不是就是執行與他配套的else 中的 語句
7樓:匿名使用者
理解很難,多看呀,多看幾遍,學到後面自然就懂了~
c語言對巢狀if語句的規定是: else總是與【 】配對
8樓:匿名使用者
與最近的一copy
個沒有被else匹配的if相配對。
比如**段
if(expr1)
aaa;
if(expr2)
bbb;
else
ccc;
這裡的else就會同第二個if,也就是if(expr2)想匹配。
而如果寫作
if(expr1)
aaa;
if(expr2)
bbb;
else //1
ccc;
else //2
ddd;
這時,//1的else會和if(expr2)相匹配,於是else//2就和if(expr1)相匹配了。
雖然有固定的原則,也可以分析出匹配,不過在實際寫**中,這樣的做法是妨礙閱讀的,會給維護帶來很大的困擾,所以針對if和else使用大括號,是一個很好的習慣。
c語言問題if語句巢狀
9樓:love添飯
要點是1 if與else的成對關係依照就近原則2 if與else的成對關係遇到花括號時,就近原則找相成對花括號3 區域性**塊一定要加括號
if(a <= 1)
if(b > 1)
printf("yes\n");//a<=1且b>1時執行else
printf("no\n");//a<=1且b<=1時執行//用括號括起來更容易理解
if(a <= 1)else
}//第二中情況
if(a <= 1)
else
printf("no\n");//a>1時執行
10樓:聽不清啊
配對情況如下:
圖中黑線表示配對情況,紅線表示條件滿足時執行的,或else時執行的語句。
配對的規律是:從上往下找第一個else,它與前面未配過對的if配成一對;如此這般,直到結束。
11樓:水忠隱浩穰
沒括號又沒縮排得確實看著累。
首行y=0是初始化y
x=80時,不屬於if
x<0,也不屬於else
ifx<10
,只能屬於else
y=200
所以結果是200
選ex=5時,屬於else
ifx<10
then
y=10
,但緊接著機結果被if
x<100
then
y=100覆蓋掉,
所以最後時100
選dp.s.注意以下語句屬於同一個區域性變數範圍內else
ifx<10
then
y=10
ifx<100
then
y=100
endif
c語言if語句巢狀
12樓:匿名使用者
if(x>=0)
else if(x<20)
esle if(x<30)
else if(x<40)
}裡面很多我就不寫了,
抄只是要記得bai在if和else if和else以後du加用大括號括起來,
從開始zhi要養成好的**習慣從加dao大括號開始求採納,求經驗,求懸賞
自己寫的不容易
13樓:匿名使用者
如果x的範圍在[0,10),將列印四個f=一個小數範圍在[10,20),將列印3個f=一個小數範圍在[20,30),將列印2個f=一個小數範圍在[30,40),將列印1個f=一個小數
c語言中三個if語句的巢狀怎理解
14樓:壞笑的狸貓醬
不知道你說的是橫
向還是縱向
縱向就是多個平級的 if()語句的並列
如 if()
if()
if()
而橫向就是 if()語句中包含if()語句如 if(if(if()));
我正好學到這裡剛剛試驗了一下是可以的 以下: 但是因為格式的關係else
}if(a==2&&b>=4)
else}}
else
return 0;}
15樓:匿名使用者
嚴格按照if語句
的格式來看待if語句,可以在條件執行體語句上外包大括號以便區別:
if ( 條件 ) 語句; //語句也可以是:
if ( 條件 ) 語句; else 語句; //語句也可以是:
如果在巢狀的if語句**現else,編譯器會自動向前找到最近的那個if完成一個完整的if...else ...語句;你也可以在遇到else後找到這個結構然後用大括號將它們括起來表示這是一條if語句,省得混淆,比如:
if ( a ) if ( b ) else 語句a; else 語句b;
可以看成:if ( a ) else 語句b;
其中巢狀的if語句可以看成一條語句,基本結構是:
if ( a ) 語句c; else 語句b; 其中語句c是一條if語句:if ( b ) else 語句a;
16樓:學渣還是學霸
if語句相關:
if語句的括號內可以加任意語句,但是不能有分隔符。可以用||、&&、!來進行邏輯語句的判斷
若是包含結構,則關係如下:
if(a)}}
則意思為如果滿足a,則對b進行判斷。如果滿足b,則對c進行判斷。如果滿足c,則執行語句d
17樓:
if 是一個分支語句,就是在條件中選擇一個執行,
for 是迴圈語句,只要條件成立,就反覆的執行,所以迴圈裡的條件只是判斷進入或退出迴圈的。
c語言 for迴圈巢狀,c語言的for迴圈巢狀怎麼執行的?
迴圈的過程是先執行第一個大迴圈for i 0 i 3 i 此句中先給i賦值0,在判斷條件i 3是否成立賦值後的i 0了,所以條件成立,成立則做下面一條語句,就是for j 0 j 4 j 同樣這個迴圈還是先賦值j 0,在進行判斷j 4是否成立,成立就再做下一句。此時scanf語句後面已經沒有語句了,...
c語言,i 和 i有什麼不同
萌士方小韓 先賦值在自增和先自增再賦值 並且前者會額外生成一個副本 以季宛映冬 i 表示遞增不在迴圈中則表示i的值 1 i 與 i的區別是 i 是先操作後賦值 也就是如果你在此輸出i 還是輸出的i的值,便是你在i 後面再寫一句輸出語句則i的值就變了 而 i則是先賦值後操作,同理在 i的時候輸出會得i...
C語言的for迴圈巢狀是什麼執行規則
先滿足外層迴圈,後滿足內層迴圈。執行一次外層迴圈,完成其內部所有的內層迴圈在進入下一次外層迴圈! 比如說for i 1 i 10 i 在這個簡單的迴圈巢狀中,要先執行內層迴圈,當i等於一時,j從一執行到十,然後返回執行i等於二,再執行一遍j從一到十。知道i等於十為止! 你只要熟練單個for迴圈的各個...