无限,而在scanf函数
问题描述:
什么是错的代码?即使输入“1”或“2”,while循环也会继续运行。无限,而在scanf函数
#include "stdio.h"
void helper(void);
int main() {
int s;
scanf("%d", &s);
while(s!=1 || s!=2) {
helper();
scanf("%d", &s);
}
return 0;
}
void helper(void) {
printf("Please use 1 or 2 as option");
}
答
任何数量或者不等于一个或不等于二:你可以肯定的是:)
你可能想什么写的是&&
。
while(s!=1 && s!=2) {
}
答
我认为你的意思
while(s!=1 && s!=2)
答
你||
应该在你的while
环路&&
。
答
您需要更改||到& &。
答
检查,而你的病情。任何变量都不能有两个值。所以用& &代替||
答
while(s!=1 || s!=2)
翻译为:
while(s is not 1 OR s is not 2)
所以,如果s
是1
,它不是2
......这意味着你不断循环。
答
您需要更改此:
while(s!=1 || s!=2) { helper(); scanf("%d", &s); }
到这一点:
while(s!=1 && s!=2) { helper(); scanf("%d", &s); }
工作。
保持编码!
答
尝试改变||
到&&
。