C語言if巢狀if,C語言裡面if語句的巢狀看不懂

時間 2021-10-17 04:38:55

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迴圈的各個...