我正在尝试使用while循环以下基本求和程序:
#include <iostream>
using std::cin;
using std::cout;
int main(){
int userIn;
int runningSum =0;
while((std::cin >> userIn) != 0){
if(userIn == 0) std::cout << "Should never execute";
runningSum += userIn;
}
return runningSum;
}
我很难理解为什么即使用户输入0也会执行while循环。
最佳答案
如果输入成功,则(std::cin >> userIn)
将是!= 0
,如果输入是0
,则while ( (std::cint >> userIn) && userIn )
。
要同时检查两者,可以执行。这将首先确保输入成功,然后确保该数字实际上非零。