我是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输入值。
将De Morgan's Laws应用于此表达式
(level != 1 || level != 2)
与]相同>
!((level == 1) && (level == 2))
内在表达曾经是真的吗?
level
可以同时为equal
1
and为equal 2
吗?不,它永远不会。