我尝试使用getchar()函数在用户输入“m”或“M”时暂停程序。
主要问题是我不知道为什么我不能用途:
while (check != 'm' || check != 'M' );
取代:
while (check != 'm' && check != 'M' );
我的代码:
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int month, check;
do
{
cout << "Enter the number, press 'm' or 'M' to exit. \n";
cin >> month;
check = getchar();
switch(month)
{
case 1:
case 2:
case 12:
{
cout << "Winter. \n";
break;
}
}
}
while (check != 'm' && check != 'M' ); // It works
while (check != 'm' || check != 'M' ); // It doesn't
return 0;
}
我是新手,所以请帮助我。
1条答案
按热度按时间a8jjtwal1#
是无意义的,因为假定
'm'
和'M'
具有不同的值,条件将总是为真。当
check
等于'm'
时,它不等于'M'
,因此check != 'M'
为真,条件为真。当
check
不等于'm'
时,check != 'm'
为真,因此条件为真。