2012-01-10 69 views
1

什么是错的代码?即使输入“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"); 
} 

回答

6

任何数量或者不等于一个不等于二:你可以肯定的是:)

你可能想什么写的是&&

while(s!=1 && s!=2) { 
} 
2

我认为你的意思

while(s!=1 && s!=2) 
1

||应该在你的while环路&&

1

您需要更改||到& &。

1

检查,而你的病情。任何变量都不能有两个值。所以用& &代替||

1
while(s!=1 || s!=2) 

翻译为:

while(s is not 1 OR s is not 2) 

所以,如果s1,它不是2 ......这意味着你不断循环。

1

您需要更改此:

while(s!=1 || s!=2) {   helper();   scanf("%d", &s);  } 

到这一点:

while(s!=1 && s!=2) {   helper();   scanf("%d", &s);  } 

工作。

保持编码!

1

尝试改变||&&