【发布时间】:2021-02-20 08:03:21
【问题描述】:
所以我正在为 C++ 类创建一个程序,并创建了一个 while 循环来停止无效输入。 每次我使用无效输入对其进行测试时,它都会进入无限循环。我是编码新手,所以我真的不知道如何解决它。
cout << "Enter weight in ounces (Max: 1800)" << endl;
cin >> pkgweight;
while (pkgweight > 0 || pkgweight < 1800)
{
cout << "Weight out of range. Program terminating.\n" << endl;
}
cout << "Enter miles shipping (Max: 3500)" << endl;
cin >> distance;
while (distance > 0 || distance < 3500)
{
cout << "Shipping distance out of range." << endl;
cout << "Program terminating.\n" << endl;
}
【问题讨论】:
-
仔细查看
while(pkgweight > 0 || pkgweight < 1800)的条件,并询问pkgweight是否有任何可能的值可以使false成为可能。然后,在你修复它之后,问问自己如果你从未在while循环的主体期间为pkgweight分配新值,它会如何从true更改到false。 -
为什么这些
while循环而不是if条件? “程序终止”后面应该跟std::terminate()之类的东西。 -
谢谢你们!我自己也打算寻找终止代码,感谢您尝试向我解释它:)
标签: c++ while-loop infinite-loop