在内部使用OR运算符

问题描述 投票:0回答:1

我是stackoverflow和C编程的新手,我有一个非常基本的问题。

这是我的代码;

int main() {
    int level;


    printf("Select game level \n1 is easy, 2 is hard: ");
    scanf("%d", &level);

    while(level != 1 || level != 2) {
        printf("Please enter a accurate game level: ");
        scanf("%d", &level);
    }

    return 0;
}

尽管每次都在运行,即使我为level变量输入1或2。但是,当我删除OR运算符时,它正在使用1值。但是我需要控制两个值。我尝试了这个,但是也没有用:

int main() {
    int level;


    printf("Select game level \n1 is easy, 2 is hard: ");
    scanf("%d", &level);

    if(level != 1 || level != 2) level = 0;

    while(level != 0) {
        printf("Please enter a accurate game level: ");
        scanf("%d", &level);
    }

    return 0;
}

而且,如果我输入一个字符串到scanf,而它开始运行而无需等待我向scanf输入值。

c while-loop
1个回答
0
投票

De Morgan's Laws应用于此表达式

(level != 1 || level != 2)

与]相同>

!((level == 1) && (level == 2))

内在表达曾经是真的吗? level可以同时为equal

1andequal 2吗?不,它永远不会。
© www.soinside.com 2019 - 2024. All rights reserved.