Это из-за логики вашего кода. Сначала вы читаете число из стандартного ввода, а затем создаете цикл while на основе условия, что число не равно 0. Поэтому, если значение num, переданное через стандартный ввод, не равно 0, ваша программа повторит тело цикла. опять и опять.
В этом коде сам цикл while не нужен. Если вы просто хотите напечатать сообщение пользователю в зависимости от того, является ли число положительным/отрицательным, вы можете просто оставить часть if/else и избавиться от цикла while следующим образом:
using namespace std;
int main() {
int num;
cout<<"enter number"<<endl;
cin>>num;
while(num!=0)
{
if(num>0)
cout<<"positive"<<endl;
else
cout<<"negative"<<endl;
}
return 0;
}
Другой возможностью может быть возможность пользователя ввести число несколько раз и разорвать цикл while при определенных условиях, например:
using namespace std;
int main() {
int num;
do {
cout<<"enter number"<<endl;
cin>>num;
if(num>0)
cout<<"positive"<<endl;
else if(num < 0)
cout<<"negative"<<endl;
} while(num!=0);
return 0;
}
Здесь цикл завершится, если число равно 0. Вы также можете явно выйти из цикла с помощью оператора break
на основе некоторого условия.
person
akhilless
schedule
04.11.2012