1樓:西門飛蓮穆勇
for(i=5;i;i--)i--;
這一句其實相當於。
for(i=5;i;i-=2);
也就是說:第一輪迴圈:i=5
第二輪迴圈:i=3
第三輪迴圈:i=1
第四輪迴圈:i=-1
第五輪迴圈:i=-3
這時i的值總是非零值,所以迴圈不會終止。
取掉乙個i--,才會遇到i=0的情況而停止,比如改為。
for(i=5;i;i--)
或。for(i=5;i;)i--;
2樓:柔智勇池鯤
語句是個死迴圈,執行無數次。
第1次迴圈:i=5,執行迴圈體i--,i=4,再執行1次i--,i=3
第2次迴圈:i=3,執行迴圈體i--,i=2,再執行1次i--,i=1
第3次迴圈:i=1,執行迴圈體i--,i=0,再執行1次i--,i...然後就進入死迴圈啦。
3樓:吉紫萱功彭
這顯然是個死迴圈,迴圈執行的條件是i
這裡iiii
i如此迴圈下去,i永遠不可能為0,迴圈永遠不能退出。
這裡的i如果是偶數的話就迴圈。i次。
c語言;for(i=1 i<=100 i--)為什麼迴圈不停?請用白話解釋一下
4樓:
這是錯誤語句,應該是for(i=1;i<=100;i--)
首先要說明,當i被宣告為int型時,它不會迴圈內不停,只是迴圈次數容。
很多,但最後還是會停下來。由於for(i=1;i<=100;i--)中當i<=100時繼續迴圈,而i的初值是1,<=100為「真」,進入迴圈;然後i--使i的值減1為0,<=100仍為「真」,也迴圈;i==-1、-2、-3……情況也仍能使i<=100為「真」,所以會繼續迴圈……但是,計算機能表示的值是有範圍的,當i減小到int能表達的最小值時會產生溢位突然變為乙個很大的正數,這時i<=100不再成立,就會停止迴圈!
5樓:匿名使用者
for(i=1;i<=100;i++)單單這個語句的話……做100個空迴圈,因為for迴圈體為空。 先是i=1, 再是看i是否小於等內於100,如果滿足這個條件。
容,那麼(,i++)進行下一輪迴圈。 如果不滿足,跳出這個迴圈。 注意: i++ 是for 迴圈體執行完後最後才執行的語句,執行順序在for迴圈體後。
for(i=1;i++<10;i++)迴圈幾次?
6樓:網友
一共執行了10次。
最後i=10
i=0是對i的初始化賦值,i<10是迴圈執行必須滿足的條件,i++則是i的自增(即i=i+1),先使用i的初始值,隨後才+1.
由於i++,i從0到10共迴圈了10次,當i=10時不滿足i<10所以退出迴圈,結果i的值是10
c語言 for(i=5,s=0;i--;s+=i)(其中當i--為什麼的時候跳出迴圈,,結果為多少) 5
7樓:卑醉巧
for(int i=5; s=0; )
用for迴圈的時候要按語法規則寫,這樣不容易出錯,最重要的是給別人看的時候,別人可以很快的明白你的意思。
你這個for迴圈是永遠不會停下來的,因為中斷條件s=0,這是永遠成立的,所以會無限迴圈下去。
for( ;
第乙個位置放的是迴圈變數的初始化,可以在其中定義迴圈變數,但一定要給迴圈變數賦值,否則會發生意想不到的錯誤。
第二個位置放的是迴圈條件,只有滿足這個條件才會進入迴圈,否則跳出迴圈。
第三個位置放的是迴圈度,i--表示的是i這個變數每迴圈一次便自減1。當然,這裡可以換成i -=2;
意思是每迴圈一次,i自減2;這個地方就是迴圈變數改變的度量。這個位置還有一點需要注意的就是,i--是for迴圈最後執行的語句。當迴圈體執行完畢以後才會執行i--。
ps:學習程式設計一定不要覺得語法枯燥就不好好看,語法就像是程式設計的法則一樣,只有遵循法則才能讓電腦和其他程式設計師看懂。語法是程式設計的基礎,一定要仔細學習。
脫離入門學者的標準之一就是秒懂語法錯誤。
按你的本意解讀的話應該是:4+3+2+1+0-1-2-3-4。此時s為0。前面的數字是i的變化。
8樓:魏天偉
這和for語句的引數問題,第乙個引數是初始化,第二個引數是判斷條件,當為0的時候跳出迴圈,結果為4+3+2+1=10。還有就是i--的運算順序,是先判斷此時i是不是0,再將1自減的。不懂可以追問,望採納!
9樓:匿名使用者
i=0的時候跳出迴圈。
中間是個bool型別的判斷,i>0時都為真。
i--是先進行運算然後i=i-1,所以最後一次運算是i=0的時候。
10樓:依稀紅顏落
i--,當i=1的時候,i--=0,也就是說,執行到i=1
設有迴圈語句for (i=-1;i<=5;i++)i++ 則其迴圈執行的次數是
11樓:匿名使用者
第一次執行後,i為1
第二次執行後,i為3
第三次執行後,i為5
條件為i <=5
因此還要執行一次,結果是4次。
c語言do迴圈,C語言do迴圈
inf 殷志民 沒有do迴圈,只有do while迴圈 while迴圈和for迴圈,因此如果你是用do while迴圈,do和while兩者是密不可分的,do裡面描述了你在不斷的重複做什麼事,而while告訴編譯器下一次重複進入迴圈的條件是什麼,如果沒有while的話,整個迴圈的思想就少了一部分,也...
C語言for迴圈的問題,C語言迴圈問題
一個偽 告訴你真相 我是大圈 一圈跑完,大圈還要跑嗎 要跑 繼續大圈與小圈的迴圈,不要跑 跳出迴圈 多層巢狀也是一樣 我是外圈 跑完了小圈,繼續中圈 中圈已結束 跳出中圈繼續執行外圈。中圈還沒結束 繼續中圈的迴圈 現在中圈也跑完了,再來跑大圈 如果大圈跑完了,該迴圈結束,還沒有的話繼續上面的奔跑,r...
c語言迴圈問題,禁止用陣列,C語言for迴圈中用gets輸入字元陣列的問題
c語言不能處理變數名。編譯之後變數都被用相應記憶體位址代替。因此,此類問題在c語言中都是用陣列處理。下面的辦法可以分別處理 int a1,a2,a3,a4 int i for i 1 i 5 i 高深一點的說,可以用乙個c的技巧 在程式執行時,會為變數申請記憶體空間,那麼a1,a2,a3,a4是在記...