c++ 使用getchar()函数暂停程序,但它有问题

cidc1ykv  于 2023-03-05  发布在  其他
关注(0)|答案(1)|浏览(162)

我尝试使用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; 

}

我是新手,所以请帮助我。

a8jjtwal

a8jjtwal1#

while (check != 'm' || check != 'M' );

是无意义的,因为假定'm''M'具有不同的值,条件将总是为真。
check等于'm'时,它不等于'M',因此check != 'M'为真,条件为真。
check不等于'm'时,check != 'm'为真,因此条件为真。

相关问题