这是因为您的代码的逻辑。您首先从标准输入中读取一个数字,然后根据该数字不等于 0 的条件构造一个 while 循环。因此,如果通过标准输入提供的 num 的值不等于 0,您的程序将重复循环体一次又一次。
在此代码中,不需要 while 循环本身。如果只是想根据 num 是否为正/负向用户打印一条消息,您可以离开 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;
}
另一种可能性是用户有机会多次输入 num 并在某些条件下中断 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;
}
如果 num 等于 0,则循环将在此处结束。您还可以break
根据某些条件显式地退出循环。