2015-10-03 142 views
0

下面的代碼應該詢問用戶他的體重,如果用戶將> 15,如果你把> 15,它不會做它應該做一個while循環將其提高到50 代碼編譯成功,但無論while循環。While循環和CIN

#include <iostream> 
using namespace std; 

int main() 
{ 


int weight; 

cout << "Current weight?" << endl; 
cin >> weight; 
cout << "Your weight:" << weight << endl; 
if (weight > 15) { 
     while (weight == 50) { 
      weight = weight + 1; 
      cout << "Weight:" << weight << endl; 
     } 
} 
return 0; 
} 
+0

它做while循環..其唯一的打印在50 –

回答

5
while(weight==50){ 
    weight = weight +1; 
    cout <<"Weight:"<<weight<<endl; 
} 

上述循環將繼續只要去爲weight等於50其中,從你寫的什麼的問題來看,是不是你在找什麼。

要解決此問題,請將環路條件更改爲更合適的內容;你不想繼續循環,只要weight小於50

+0

但是==意味着相等,所以應該不是實際運行,直到其50? 感謝您幫助我解決問題的幫助,但我不明白爲什麼==沒有工作。 –

+2

@ScottKim不,條件管理循環是否應該繼續進行,它不**意味着*「當它是停止時間」*。 'while(weight == 50)work;'說只要'weight'爲'50',我們就應該繼續做''work''。 –

0

一個,而在C/C++編程語言的循環語句反覆,只要給定的條件爲真,執行目標語句。

+0

執行while循環直到條件變爲false。 –

0

如果輸入50以外的重量值,weight == 50條件將失敗。 做你剛纔提到的在while循環中修改條件。

weight == 50 

weight < 50 
0

如果運行這個程序一步一步,使用調試器,以及您添加的變量值的手錶,你會看到發生了什麼事情。

你的開發環境(你用來編寫代碼的)可能有一個集成的調試器;或者,使用另一個開發者。 env。的調試器,或者像命令行的gdb,KDE的kdbg,任何X環境的ddd(這些都在Linux上;其他平臺可能有其他調試器)的獨立調試器。