1樓:一個不願透露姓名的朋友
第二條語句是錯誤的。
格式為for(...;....;....)我不知道你說的是**,k=1?有2個k的賦值語句。
首先來看看你的第一個迴圈.
int k=10;
while(k = 0) /* 迴圈條件為false */k = k-1; /*這條語句永遠不會執行*/來看看第二條迴圈
for(i = 0), /*書寫有問題,中文括號*/for(i=0),k=-1;k=1;i++,k++) /*有一個括號沒有結束*/
我幫你改成:
for(i = 0,k = -1;k = 1;i ++,k ++)printf....
首先,以i = 0,k = -1開始
條件成立嗎? k = 1;成立,真
遞迴語句 i++,k++
你想想,每次到條件這裡的時候,都是成立的,這不是無限迴圈是什麼?
標準的死迴圈是這樣寫的:
while(1) .....
for(..; ;..)... /*條件為空*/do...
while(1);
這些都是死迴圈,估計是你沒看仔細。希望滿意。
2樓:你名字真好
k = 0 和 k = 1 都是表示式啊
while(k = 0) 相當於while(0)while(k = 1) 相當於while(1)while(k = 2) 相當於while(2)while(k = 1 + 2) 相當於while(3)while(x = k = 1 + 2) 相當於while(3)int a = k = 1; //此時a和k的值都是1int b = k = 0; //此時b和k的值都是0int c,d;
c = d = k = 1; //此時c d k都是1c = d = k + 1; //此時c d等於2,k1
3樓:匿名使用者
void f(void)
補:是的,是死迴圈。
4樓:絕殺狂龍
我擦,第一個很簡單的賦值語句 while(k=0) 這裡是將數值0賦給變數k,然後while判斷裡面就是 0,0就是false所以不執行迴圈
5樓:
第一個,因為while裡執行的是賦值語句k=0所以k=0,判斷k的值為0,及假。。退出迴圈。
第二個,編譯錯誤,腦補為:for(i=0,k=-1;k=1;i++,k++) 迴圈條件k=1.不是一樣的道理嘛。
6樓:匿名使用者
是的,如果中間改為k=0,那麼這個迴圈永遠不會執行,因為這是賦值語句,它的條件值就是(k ==0 ? 0:1)
7樓:匿名使用者
= ==無意義 以後k == 0; 直接把0 寫前面 0 == k; 少個等號 編譯器會報錯
8樓:匿名使用者
前面兩個問題你說的都是對的 k=1;表示式的值永遠為真 所以是無限迴圈
9樓:櫻花祭季
第一個k是10,不等於0,所以不滿足while條件,不會執行while迴圈語句
10樓:允若南
for() while() do while 迴圈語句
11樓:匿名使用者
首先,你**打錯了吧
條件語句是賦值,永遠為真(不準確)
應該說除了賦值為0,永遠為真,0就是永遠為假
12樓:
i=0 是真 所以會無限次迴圈
13樓:宿星之子
第一個定義了k的值為10,只有當while(k=10)是無限迴圈,其餘是0迴圈!
14樓:匿名使用者
第一個k=0,則條件假,則無法迴圈。一次迴圈都沒有進行!
15樓:匿名使用者
=是賦值,==是關係「等於」。
16樓:匿名使用者
關注。。。。。。。。。。。。。。
17樓:匿名使用者
對如果是k=1 無限迴圈
關於C語言迴圈比較的問題
while fscanf fc,s fwj eof if strcmp a2,fwj 0 語句1elseif a8只要加一個else就行,語句1和語句2就會選擇執行。再幫你多加了幾對括號,這可能是一個形式程式,並不是完整程式。你這麼寫 肯定是順序執行 你所謂的2 語句 在 while的迴圈語句中 肯...
關於for迴圈語句後的分號問題,在C語言中,for語句的後面加分號和不加分號有何不同,該分號有什麼作用?
可愛的小知道 for 表示式1 表示式2 表示式3 語句 執行過程如下 1 先求解表示式1。2 求解表示式2,若其值為真,則執行for語句中指定的內嵌語句,然後執行下面第3 步 若其值為假,則結束迴圈,轉到第5 步。3 求解表示式3。4 轉回上面第2 步繼續執行。5 迴圈結束,執行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語句後面已經沒有語句了,...