Я написал программу на C++, позволяющую пользователям вводить положительные числа с помощью цикла do while
. Несмотря на это, когда я пытаюсь преобразовать цикл do while
в цикл while
, ожидаемый результат отличается от цикла while. Код выглядит следующим образом:
#include <iostream>
using namespace std;
int main()
{
int n;
do
{
cout << "Enter a non-negative integer: ";
cin >> n;
if (n < 0)
{
cout << "The integer you entered is negative. " << endl;
}
}
while (n < 0);
return 0;
}
Терминал требует от пользователя повторного ввода числа до тех пор, пока оно не будет положительным для приведенного выше кода, который я написал. Однако я пытаюсь преобразовать цикл do while
в цикл while
, как показано ниже, вывода нет вообще.
Могу ли я узнать, какую часть я написал неправильно? Спасибо.
#include <iostream>
using namespace std;
int main()
{
int n;
while (n < 0)
{
cout << "Enter a non-negative integer: ";
cin >> n;
if (n < 0){
cout << "The integer you entered is negative. " << endl;
}
}
return 0;
}
n
не инициализировано, оно может случайно содержать отрицательное число, а может и не содержать. Поведение, в частности, будет ли условие циклаwhile
true
при первом выполнении, не определено. - person Bungo   schedule 19.02.2021