인프런 커뮤니티 질문&답변
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 도 출력하게 하고 싶다면
이렇게 묶어주셔야 올바른 표현입니다.





