我正在学习 Ivor Horton 的 Beginning Visual C++ 2012,我正在做第三章中的练习二:决策和循环。这是我的代码:
#include <iostream>
using namespace std;
int main()
{
char letter;
int vowels = 0;
do
{
cout << "Enter a letter, and enter q or Q to end" << endl;
cin >> letter; // Enter a letter
switch (letter)
{
case 'a' || 'A' || 'e' || 'E' || 'i' || 'I' || 'o' || 'O' || 'u' || 'U': // If letter is a vowel, add to vowels variable
vowels++;
break;
default: // If letter is not a vowel, break loop
break;
}
} while (letter != 'Q' || letter != 'q');
cout << "You entered " << vowels << " vowels.";
return 0;
}
此程序的预期目的是允许用户输入一个字母,直到他们输入 q 或 Q,此时 do...while 循环结束,程序向用户显示他们输入的元音字母数。
当我运行它时,当我输入 Q 或 q 时程序不会退出。为什么?我该如何解决这个问题?
最佳答案
字母 != 'Q' ||字母 != 'q'
意味着...
letter is not Q
or
is not q
...所以它总是真的...就好像它是Q
,它不会是 q
,如果它是 q
,它就不会是 Q
...那只会是错误的,如果字母是 Q
和 q
一次。
只需使用:
letter != 'Q' && letter != 'q'
关于c++ - 我的代码有什么问题...当条件满足时循环不关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34696335/