강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

최지로님의 프로필 이미지
최지로

작성한 질문수

홍정모의 따라하며 배우는 C++

5.2 조건문 if

4:38분 괄호가 없어도 실행이 되는데 바뀐건가요?

작성

·

179

0

4:38초에

괄호가 없을 경우 두가지를 같이 출력할 수 없다고 하셨는데

지금은 가능하던데 업데이트로 바뀐건가요??

    int a;

    cin >> a;

    if (a < 10)

       cout << "1출" << endl;

    else

        cout << "3중" << endl;

        cout << "2중" << endl;

11입력할 경우

3중

2중 두개가 실행이 되던데

답변 1

3

    int a;

    cin >> a;

    if (a < 10)

       cout << "1출" << endl;

    else

        cout << "3중" << endl;

        cout << "2중" << endl;

질문자님처럼 이렇게 입력하셨다면 이 코드에서 cout << "2중" << endl; 이건 else 에 속하지 않습니다. 중괄호로 묶어주지 않으셨기 때문에 위 코드는

이 코드와 동일한거나 마찬가지에요. C++ 은 파이썬처럼 들여쓰기로 영역을 구분하지 않습니다. 

그러니까 만약 11을 입력했다면 else 에 해당하니 cout << "3중" << endl; 을 출력할거고

그 밑에 있는 cout << "2중" << endl;  는 if - else 문에 전혀 속하지 않구요 (괄호로 묶어주지 않으셨으니까요) 그냥 main 함수의 코드로서 출력되는 것 뿐입니다.

만약 11이 아닌 a < 10 에 해당하는 7 을 입력하셨다면 마찬가지로 cout << "1출" << endl; 와 cout << "3중" << endl; 을 함께 출력할거에요. 

결론적으로 if else 문과 전혀 상관없는 영역에 cout << "2중" << endl 을 적어주셨기 때문에 이게 출력된것 뿐입니다. 이건 해당 코드의 if - else 문에 속하지 않아요. 따라서 if 에선 cout << "2중" << endl 를 출력하지 않도록 하고 싶고, else 에선 cout << "2중" << endl 도 출력하게 하고 싶다면 

이렇게 묶어주셔야 올바른 표현입니다.

최지로님의 프로필 이미지
최지로

작성한 질문수

질문하기