채택완료

c언어 if문 간단한 질문

2020-05-12 (화) 01:13:24 2,310

#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개 / 댓글 1개

채택된 답변
+20 포인트

if (a = 1234) -> if (a == 1234)

2020-05-12 (화) 10:21:26

답은 나와 있으니 패스하고..

오류를 고치는건 금방이지만 그 오류를 찾기위해 중간중간에 debug 메세지 넣고

돌려보고 다시 debug 메세지 넣고 하는 과정이 학습이고 공부입니다.

그걸 debugging 이라고 하잖아요 ^^

여기다 올리면 답은 던져주겠지만 님한테는 마이너스 에요

물고기는 얼마든지 던져줄수 있지만 낚시 기술은 잘 안가르쳐 주기도 하거니와

찾지 않으면 모르니까요

답변에 대한 댓글 1개

c언어 정말 기초부터 배우는지라 아직 미숙한게 많네요^^... 작성자 분이 쓰신 말도 맞는 말인 것 같네요 다음부터는 시간이 걸리더라도 조금 더 스스로 고민해보겠습니다 감사합니다

if (a = 1234 ) 라고 하시면

if (   a에 1234를 대입한결과는 1234 

if (1234) 가 되고

c언어에서 0은 false 와 동일 양수인 1 이상은 true 와 동일

비교를 하는건 == 로 사용하셔야 합니다.

'=' 은 오른쪽 값을 왼쪽에 넣는다는 의미 입니다.

'==' 이 비교구문입니다.

답변을 작성하려면 로그인이 필요합니다.