我是编程新手,所以如果我的问题太基础,请原谅我。
对于下面的代码,我不知道 bool 变量“more”究竟是如何工作的。它说只要“更多”为真,while 循环就会执行循环的内容,但是
- 计算机如何知道更多是真的?知道“更多”的字面意思是用户通过键盘输入额外的值是否足够聪明?此外,它是否知道负输入不被视为“更多”,而只有正输入被视为“更多”?
- 在while循环中,它说当输入值为0时more为false。但是,当它已经通过while循环时more为false在逻辑上没有意义,while循环仅在more为时运行真的!
- 我了解到,当“while 始终为真”时,我们将陷入无限循环。似乎 while 循环永远为真,因为 more = true。
请帮我解决这个问题!!
vector<double> salaries;
cout << "Please enter salaries, 0 to quit:" << endl;
bool more = true;
while (more)
{
double s;
cin >> s;
if (s == 0)
more = false;
else
salaries.push_back(s);
}
最佳答案
(1):计算机(或编译器)不够聪明,无法将more
与字面意思联系起来。
(2):more
可以在循环内更改,这是当您输入 0
时发生的情况。将 more
更改为 false
后,将重新评估 while (more)
中的条件。由于 more
现在为 false,因此退出循环。
(3):不,more
并不总是正确的,请参见 (2)。
关于c++ - 这个 bool 变量是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27354138/