【发布时间】:2019-12-14 19:29:04
【问题描述】:
我是 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 中输入一个字符串,while 开始运行,而无需等待我向 scanf 输入值。
【问题讨论】:
-
对自己反复说
level != 1 || level != 2。然后,问问自己level == 1是否为真,这两个条件中的哪一个仍然为真,从而由于||运算符而满足整体表达式为真?如果表达式改为level != 1 && level != 2,那会有什么不同? -
1 != 2反之亦然 -
我的想法确实不同,我知道。非常感谢您。字符串的东西呢?如何防止while无限循环?
标签: c while-loop