これは、コードのロジックが原因です。最初に標準入力から数値を読み取り、次に数値が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;
}
もう1つの可能性は、ユーザーが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;
}
break
ここで、numが0に等しい場合、ループは終了します。条件に基づいて、ステートメントを使用してループから明示的に抜け出すこともできます。