1樓:天蠍小灰馬
原因:雖然while判斷沒有滿足,但是此時仍然要給i-1,就是前面說的用完i值後 再自減。所以此時i值是-1了。
do-while語句的一般形式為:
do語句
while(表示式);
這個迴圈與while迴圈的不同在於:它先執行迴圈中的語句,然後再判斷表示式是否為真,如果為真則繼續迴圈;如果為假,則終止迴圈。因此,do-while迴圈至少要執行一次迴圈語句。
其執行過程可用下圖表示。
2樓:
首先說明兩點
如果 - - 在後面的話,先使用這個變數,用完後再自減。
第二點 while中的表示式 如果是大於0的 while都是成立的,就是true
開始分析
i=3while()判斷,由於i=3,所以滿足條件,判斷結束後 i 值減去1
然後繼續執行while內的語句,但是這裡while跟了一個分號,就是說while是一個空迴圈。
繼續while判斷,此時i值是2,所以 while仍然滿足,i-1後繼續空迴圈。
此時i=1,執行while判斷,仍然滿足條件,給i-1,然後繼續空迴圈
此時i=0了,繼續while判斷,發現不滿足條件了,雖然while判斷沒有滿足,但是注意此時仍然要給i-1,就是我前面說的用完i值後 再自減。所以此時i值是-1了
由於不滿足條件,所以退出迴圈了。最後輸出的就是-1
3樓:小寄生蟲兒
while(i--);這句後面有個分號,就是執行完while( i--)後,執行空,i=1時,while 執行後,i=0,之後會再進入一次迴圈,也就是while(0--),這時候為假,i=-1,則輸出
4樓:
當i==0時,雖然while迴圈退出了,但是--操作還是要執行的,這樣到你用printf的時候就成-1了。
相當於 while(i); i--;
5樓:
因為i--是先取i值0,然後i--,這時i=-1,然後才是while判斷取出的值0,退出迴圈,所以結果是-1
6樓:秦玉蘭掌珍
while(a>0)
你這段**又重新把a的值賦成了0,外層for你又讀a的值,那麼第一次的時候a初始為1,進入你的while迴圈後,a被賦值成0,sum永遠是sum*1,當然會一直打1了。
一個簡單的c++ while 迴圈問題
7樓:匿名使用者
#include
using namespace std;
int main()
while (worktime != 0);
system("pause");
return 0;
}你的迴圈裡度直接return 0了,不可能執行多次。
另外 if(worktime>40,worktime<=50) //當 工作時間在40-50之間時 執行下列語句
這行應該是 : if(worktime>40 && worktime<=50) //當 工作時間在40-50之間時 執行下列語句
c++while迴圈順序問題基礎問題
8樓:贏桓
i++在前面那個,i++之後i=1;所以sum是從1開始加,加6次,1+2+3+4+5+6=21;
i++在後面那個,sum加之後i++,sum從0開始加,也是加6次,0+1+2+3+4+5=15;
6次是這麼算出來的,i<=5,從0開始,所以i的值是0,1,2,3,4,5是六個數,i++在前面那個最後一次的時候i=5,i++=6;
i++在後面的時候最後一次i=5的時候最後sum+的是5,所以值一定不一樣
c++while迴圈問題。
9樓:匿名使用者
這個要看你的兩個函式的值是不是都是0,都是0的話肯定永真了。好好檢查下while裡面的兩個呼叫的函式。
關於c++ while迴圈的一個問題
10樓:
c++輸入cin詳解
輸入原理:
程式的輸入都建有一個緩衝區,即輸入緩衝區。一次輸入過程是這樣的,當一次鍵盤輸入結束時會將輸入的資料存入輸入緩衝區,而cin函式直接從輸入緩衝區中取資料。正因為cin函式是直接從緩衝區取資料的,所以有時候當緩衝區中有殘留資料時,cin函式會直接取得這些殘留資料而不會請求鍵盤輸入
在讀取整數9後遇到.發生賦值錯誤,導致迴圈結束。
11樓:我
稍微改了一下:
#include
#include
using namespace std;
int main()
sum += a;
cout << "sum=" <
加了個限制條件吧算是,然後你說的問題是因為資料型別的問題。
int是整形,你輸入一個浮點型資料他是不會給你四捨五入的,只會保留整數部分,這樣算是一個隱式的型別轉換。
簡單的日語句子問題,一個簡單的日語句子問題
1 看後面的動詞是 食 是 食 的被動型。意思是 被吃掉了 因為是是被弟弟吃掉了 所以物件的 弟弟 後面要加 甜瓜被弟弟吃掉了 2 這個 表示移動的場所 離開的場所後面加的。因為是從 駅 出來的 所以 駅 後面要加 這個 表示動作的結果 做動作的物件的場所。意思是 向 在 於 巴士從車站出來 行駛了...
簡單的問題,一個簡單的問題!
報酬看時代而定了。時代不同,報酬就不同,但是總的說來會是很少了。所以一般主人家趕丫鬟 奴婢走時,她們都是哭著鬧著不想走,也是為了生存啊。主人家高興時給幾個打賞錢,過年 中秋什麼的節日也會給點 她們屬於封社會中的依附農民,基本上是處於奴隸的地位,沒有任何報酬。依據主人家族規矩和喜惡決定。固定報酬是沒有...
求助簡單問題,求助一個簡單問題
dos下檢視u盤的碟符與硬碟的分割槽格式 有沒有非fat格式及是否有ntfs檢視工具 有關的,如果是從u盤引導的,u盤的碟符可以是a盤也可以是c盤。大容量u盤會被主機板模擬為硬碟,多為c。最好給各個分割槽加個不同的英文卷標,這樣就好檢視了。不要使用中文的,否則很可能在英文dos下亂碼。通過檢視容量來...