2014-10-31 72 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語句更可取。 希望這有助於。