我是 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;
}
每次运行时,即使我为级别变量输入 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 输入一个字符串,while 就会开始运行,而不等待我向 scanf 输入值。
最佳答案
正在申请De Morgan's Laws对于这个表达式
(level != 1 || level != 2)
与此相同
!((level == 1) && (level == 2))
内心的表达可以是真实的吗? level
可以等于 1
和等于 2
同时?不,它不能,永远不会。
关于c - 在 while 内部使用 OR 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59334649/