2014-10-31 74 views
-3

我在C中创建了小代码来测试一些东西。我认为如果我写0,我会收到输出ABC。但我不能离开这个循环。请帮帮我。谢谢。不能离开循环

#include<stdio.h> 
#include<stdlib.h> 

int main() 
{ 

int x; 

while(1) 
    { 
    printf("Enter number\n"); 
    scanf("%d",&x); 
    if(x=0) 
     goto stop; 
    } 

stop: 
    printf("ABC"); 

return 0; 
} 
+2

'if(x = 0)'是分配,而不是比较。另外,不要“停下来......”......只是“休息”; – indiv 2014-10-31 01:13:55

+0

在你的'if'中使用'=='而不是'=' – Dmitri 2014-10-31 01:14:01

+1

请不要使用'goto',你可以''break'退出循环 – 2014-10-31 01:15:48

回答

3

更改线

 if(x=0) 

 if (x==0) 

原来你指派0到x,但要比较。要将x与0进行比较,您需要使用==

+1

你可能会考虑告诉他为什么。 – EvilTeach 2014-10-31 01:17:11

+0

好点,完成 – smushi 2014-10-31 01:19:35

+0

顺便说一句,如果你在你的编译器中启用所有的警告和调试信息,你会被'gcc -Wall -Wextra -g' – 2014-10-31 02:13:19

2

的代码是错误的 代码

如果(X = 0)

应该改变到

如果(X == 0)

0

正如其他人指出的那样,c中的单个等号是赋值,而双等号表示测试是否相等。在这种情况下,需要双等号。因此,而不是 如果(x = 0),你想如果(x == 0)
另一个技巧,使用break比在这里的goto语句更可取。 希望这有助于。