2014-10-31 3 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

+0

'if' 대신에'=='를 사용하십시오 – Dmitri

+1

'goto'를 사용하지 말고 그냥 루프에서 빠져 나올 수 있습니다 –

답변

3

변경 라인을 변경해야

 if(x=0) 

 if (x==0) 

에 원래 당신은 X에 0을 할당했다,하지만 당신은 비교하려는. x를 0과 비교하려면 ==

+1

나중에 그에게 이유를 설명하는 것이 좋습니다. – EvilTeach

+0

좋은 지적이다. – smushi

+0

안녕하세요, 컴파일러에서 경고와 디버그 정보를 모두 사용 가능하게하면'gcc -Wall -Wextra -g' –

2

코드 잘못 코드

경우 (X = 0)

경우 (X == 0)

0

다른 사람들이 지적했듯이, c의 단일 등호 기호는 대입이고, 등호 기호는 동등 함을 테스트합니다. 이 경우, 등호가 필요합니다. 따라서 대신에 (x = 0), 원하는 경우 (x == 0)
팁을 한 번 더 사용하면 여기서 break를 사용하는 것이 goto 문보다 바람직합니다. 희망이 도움이됩니다.

관련 문제