当我输入0到70之间的值时,它会无限打印(这是错误的),但是当输入的数字不在0到70之间时,它会提示用户输入一个应该在0到70之间的数字。(正确)
Command:
electron-packager . electron-tutorial-app --overwrite --asar=true --platform=win32 --arch=ia32 --icon=assets/icon.ico --prune=true --out=release-builds --version-string.CompanyName=CE --version-string.FileDescription=CE --version-string.ProductName="Electron Tutorial App"
我输入0到70之间的值时,结果应该只打印一次。
答案 0 :(得分:4)
您应该重新考虑while
循环中的内容。您是否真的要在那里输出?您可能只希望循环获取输入,直到它有效为止。相反,应将输出移出循环:
int main() {
int hourswork = -1;
int RATE = 123;
while (hourswork < 0 || hourswork > 70)
{
cout << "Please enter a value between 0 to 70: ";
cin >> hourswork;
}
int wages = RATE * hourswork;
cout << "The wage is: " << wages << endl;
}
通过这种方式,它将要求一个hourswork
值,直到它有效为止,然后停止循环,并在循环后无条件地进行一次打印。
通常,您的循环永远不会终止的原因是,while (true)
不会停止循环,除非您使用break
,return
或类似的东西退出循环,而这两者都不是出现在您的代码中。
答案 1 :(得分:3)
当break
在范围内时,您需要使用hourswork
退出循环。
赞:
while (true)
{
if (hourswork < 0 || hourswork > 70)
{
cout<<"Please enter a value between 0 to 70: ";
cin>>hourswork;
}
else
{
wages = RATE * hourswork;
cout << "The wage is: " << wages << endl;
break;
}
}