c언어 if문 간단한 질문
본문
#include <stdio.h>
int main()
{
int a;
printf("사용자 id를 입력하세요:");
scanf_s("%d", &a);
if (a = 1234)
{
printf("정상적으로 로그인이 성공되었습니다");
}
else
{
printf("사용자 id가 틀렸습니다");
}
}
해당 소스코드를 실행시키는데 뭐가 잘못된건지 id가 1234가 아니어도 정상적으로 로그인이 성공되었다고 나오네요ㅜㅜ id=1234 아닐시에 else로 안가고 자꾸 1234일 때 나와야하는 출력값이 나와버리네요...
뭐가 잘못된걸까요..
답변 4
if (a = 1234) -> if (a == 1234)
'=' 은 오른쪽 값을 왼쪽에 넣는다는 의미 입니다.
'==' 이 비교구문입니다.
if (a = 1234 ) 라고 하시면
if ( a에 1234를 대입한결과는 1234
즉
if (1234) 가 되고
c언어에서 0은 false 와 동일 양수인 1 이상은 true 와 동일
비교를 하는건 == 로 사용하셔야 합니다.
답은 나와 있으니 패스하고..
오류를 고치는건 금방이지만 그 오류를 찾기위해 중간중간에 debug 메세지 넣고
돌려보고 다시 debug 메세지 넣고 하는 과정이 학습이고 공부입니다.
그걸 debugging 이라고 하잖아요 ^^
여기다 올리면 답은 던져주겠지만 님한테는 마이너스 에요
물고기는 얼마든지 던져줄수 있지만 낚시 기술은 잘 안가르쳐 주기도 하거니와
찾지 않으면 모르니까요