Рассмотрим следующий код для вычисления суммы чисел, введенных пользователем во время выполнения:
#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)
оценивается как ложное, в результате чего цикл завершается, и, следовательно, должна выполняться сумма чисел печати оператора.
Но этого не происходит.
Итак, почему цикл while
не завершается, когда пользователь вводит 0 в качестве ввода?
Пожалуйста, рассмотрите мой пример запуска программы ниже:
(Затем, наконец, нажмите ctrl-z, чтобы указать конец-file)
Сумма: 11
Вот мои сомнения в приведенном выше примере:
После того, как я ввел 0, мне не нужно запрашиватьдальнейшие входные данные, потому что, по моему мнению, while(0)
должно оцениваться как ложное, и, следовательно, утверждение, говорящеесумма чисел, введенных до 0, должна быть напечатана на экране, чего не происходит.