[C] C언어 기초

[C] C언어의 조건문_if문

ITsubin 2022. 3. 29. 01:02

C언어에서 조건문이란, 조건을 판별하는 제어문입니다.

쉽게 말하자면 "분기점"을 만들어주는 구문이라고 볼 수 있습니다.

즉, 순차적으로만 흐르던 단순한 프로그램에서, 드디어 갈림길을 선택할 수 있습니다.

 

조건문은 크게 두 가지로 나뉩니다. 

바로 [ if문 ][ switch문 ]입니다.

 

[ if문 ]

if문은 수행할 내용이 한 문장인 경우, 중괄호를 생략할 수 있습니다.

하지만 저는 '중괄호를 생략할 수도 있다'라고만 생각하고 굳이 생략하지는 않겠습니다.

if(조건문){
     참일 때 실행하는 구문;
}
if문의 형식은 위와 같습니다. 간단한 예문을 보여드리겠습니다.
위 예문에서 4행을 보면 먼저 정수(int)형 변수 num1을 선언과 동시에 10으로 초기화하였습니다.
num1의 값은 10이기 때문에, 6행에서의 조건문 [ num1 >= 9 ](num1은 9보다 크거나 같다)은 참이 됩니다.

따라서, 괄호 안의 내용은 "참"이기 때문에 아래의 결과와 같이 실행됩니다.

만약 4행에서 10이 아닌 8로 초기화를 했다면, 6행에서의 조건문은 "거짓"이 되기 때문에 출력할 결과가 없습니다.

아래 예시처럼 scanf로 입력하여 참과 거짓을 판별하는 것 또한 가능합니다.

 
[ if else문 ]
if(조건문){
     참일 때 실행하는 구문;
} else {
     거짓일 때 실행하는 구문;
}

if else문에서는 참일 때 실행하는 구문 말고도, 거짓일 때 실행하는 구문도 추가할 수 있습니다.

조건문의 내용이 참이면 if의 중괄호 안의 구문이 실행되고, 거짓이면 else의 중괄호 안의 구문이 실행됩니다.

아래의 예시와 결과를 보면 9를 입력했을 때 조건문이 "거짓"이기 때문에 else의 중괄호 안의 구문을, 11을 입력했을 때 조건문이 "참"이기 때문에 if의 중괄호 안의 구문을 출력한 것을 볼 수 있습니다.

하지만, 위 예시에서 10을 입력한다면 조건문은 "거짓"이 되기 때문에 10을 입력하더라도 "변수 num1에 입력된 값은 10보다 작습니다."라고 출력됩니다.
 
[ 중첩 if문(else if문) ]
if(조건문) {


} else if(조건문) {


} else if(조건문) {


} else {


}
else if문에서는 조건식을 여러 개를 만들 수 있습니다.
아래의 예시는 조건식을 3개 달아서 num1이 10보다 클 때, num1이 10과 같을 때, num1이 10보다 작을 때 실행할 구문을 각각 만들어주었습니다.

위의 예시와 같은 역할을 하는 코드를 else if 대신 else로 바꿔넣을 수도 있습니다.

(10보다 크면 if의 중괄호 안의 구문이, 10이면 else if의 중괄호 안의 구문이, 둘 다 아니라면 else의 중괄호 안의 구문이 실행됩니다.)