if else 구문 C++
목차
if else 구문은 if 의 기능을 확장한 것 입니다.
if 문은 표현식의 검사결과에 따라 true / false로 나뉘고 true 인 경우에만 body를 실행하도록 되있습니다. 그렇다면 false 인 경우에는? else 를 사용하여 별도의 body 로 분기할 수 있습니다.
if(표현식 검사) body else body
if 의 표현식이 false 가 되면 자동으로 else 의 body를 실행시키면 되기 때문에 else 에서 새로 검사를 할 필요는 없습니다.
다음의 예제는 if else 문의 사용입니다.
숫자 두개의 크기 비교를 해서 큰 쪽과 작은 쪽으로 나눌 수 있습니다. 정수에서는 큰쪽이 결정되면 작은쪽도 결정되므로 큰쪽을 true 작은쪽을 false 라 할 수도 있습니다.
using std::cout; using std::cin; using std::endl; int main() { int num = 0; do { cout << "정수를 입력하시오: "; cin >> num; if (num > 0) cout << "0보다 큽니다." << endl; else cout << "0보다 작거나 같습니다." << endl; } while (num != 0); return 0; } [실행결과] 정수를 입력하시오: 1 0보다 큽니다. 정수를 입력하시오: 2 0보다 큽니다. 정수를 입력하시오: 4 0보다 큽니다. 정수를 입력하시오: 0 0보다 작거나 같습니다.
if else 문은 두 갈래의 길의 선택과 같습니다. else 문에는 조건이 필요없고 실행되는 코드만 필요한 것이지요.
if else if else
else if 라고도 부르는 if else if else 구문입니다.
예제를 통해 알아보겠습니다.
if else 는 두갈래의 분기입니다. 여기서 else 안에 다시 if else 문을 사용하면 총 세가지의 분기를 할 수 있습니다. else 라는 가지(branch)에 다시 if 를 무한정 반복할 수 있으니까 세가지 이상의 조건을 만들 수 있습니다.
#include <iostream> using std::cout; using std::cin; using std::endl; int main() { int num = 0; do { cout << "정수를 입력하시오: "; cin >> num; if (num > 0) cout << ">> 0보다 큽니다 - 양수" << endl; else if (num < 0) cout << ">> 0보다 작습니다 - 음수" << endl; else cout << ">> 0입니다 - 종료" << endl; } while (num != 0); return 0; } [실행결과] 정수를 입력하시오: 5 >> 0보다 큽니다 - 양수 정수를 입력하시오: -3 >> 0보다 작습니다 - 음수 정수를 입력하시오: 0 >> 0입니다 - 종료
이 문법을 아래와 같이 줄을 맞춰서 사용하는 경우가 많습니다. 뭐 틀린 것은 아닙니다만, 의미적으로 정확한 전달은 위에 들여쓰기가 더 좋습니다. if 에서 true 실행 후 종료 else 에서 if else 로 분기.
if (num > 0) cout << ">> 0보다 큽니다 - 양수" << endl; else if (num < 0) cout << ">> 0보다 작습니다 - 음수" << endl; else cout << ">> 0입니다 - 종료" << endl;
이것을 프로그램해서 yes or no 의 질문을 끓임없이 던지는 무한 질문도 만들 수 있습니다.
요약
if else 구문은 분기를 만들어 내는데 사용합니다. 프로그램의 코드는 위에서 부터 순차적으로 실행됩니다. 그러나 if else 분기문을 만나면 어떤 한쪽의 코드만 실행시키고 다른 한쪽의 코드는 실행시키지 않을 수 있습니다.
이는 조건에 따라 다른 결과를 사용할 수 있게 합니다. 기본적인 분기는 true / false 에 의하여 걸러지지만 이는 두가지 선택만이 가능합니다. 만약 세가지 이상의 조건에서 선택하고 싶다면 if else 를 중첩시켜서 사용할 수 있습니다. if else 에서 if 문이나 else 문 어느쪽에도 추가로 분기를 할 수 있습니다.
if 문은 간단한 아이디어지만 매우 강력한 확장성을 가지고 있습니다.
C++의 문법은 프로그래밍에서는 가장 교과서적인 형태를 취하고 있습니다.
문법과 개념을 확실히 습득한다면 향후 어떤 프로그래밍 언어에서도 분기문에 쉽게 적응할 수 있을 것 입니다.
참고문서
if…else 문 (c + +) | Microsoft Docs
C++ | if 문 (If Statement) 조건문 | if else