【发布时间】:2016-11-27 00:11:22
【问题描述】:
试图弄清楚为什么当你选择 y 时这会是一个无限循环。当用户选择y或Y时,它不应该离开do while循环吗?
#include <iostream>
using namespace std;
int main()
{
int choice;
do {
cout << "Enter a number. If you would like to quit, press y.";
cin >> choice;
if (choice % 2 == 1)
{
cout << "Odd \n";
}
else
{
cout << "Even \n";
}
} while (choice != 'y'|| choice != 'Y');
return 0;
}
【问题讨论】:
-
如果您想快速修复,请将
while (choice != 'y'|| choice != 'Y')更改为while (cin) -
嗯
(choice != 'y'|| choice != 'Y')不总是这样吗?我的意思是即使选择 == 'y' 它不是 'Y' 如果它是 'Y' 它不是 'y' 如果它是任何其他字母它也是真的.. -
我按照书上的要求进行操作。 “编写一个 do-while 循环,显示用户输入的是 int 偶数还是奇数。然后代码应该询问用户是否要测试另一个数字。只要用户输入 Y 或 y,循环就应该重复。在 do-while 循环测试中使用逻辑 OR 运算符。”
-
其实@drescherjm 是对的。实际情况总是会渲染为真,因为当choice == y 时,choice != Y 和false ||真=真。正确的条件应该是!(choice == 'y' || choice == 'Y'),相当于(choice != 'y' && choice != 'Y')。
标签: c++