【发布时间】:2019-06-09 23:27:33
【问题描述】:
考虑以下代码来计算用户在运行时输入的数字的总和:
#include <iostream>
using namespace std;
int main()
{
int sum = 0; //stores sum of numbers
int taken; //stores the number inputted by the user
while(cin>>taken)
{
sum += taken;
}
cout<<"The sum is : "<<sum;
return 0;
}
现在,我希望循环自行退出并在用户输入 0 后立即显示用户输入的数字的总和,因为 while(0) 的计算结果为 false,因此循环终止,因此语句打印应该执行数字的总和。
但这不会发生。
那么,为什么当用户输入0作为输入时while循环没有退出呢?
请考虑我下面的程序示例运行:
- 3
- 2
- 1
- 0
- 5
(最后按 ctrl-z 表示文件结束)
总和是:11
这是我对上述示例运行的疑问:
在我输入 0 后,我不应该被提示进一步输入,因为根据我的说法,while(0) 应该评估为假,因此应该在屏幕上打印告诉输入数字总和直到 0 的语句,这不会发生。
【问题讨论】:
标签: c++ while-loop