2015-10-03 209 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上;其他平台可能有其他调试器)的独立调试器。