我正在尝试使用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 )

要同时检查两者,可以执行。这将首先确保输入成功,然后确保该数字实际上非零。

07-24 13:57