C언어 if, else if, else 케이스 비교
C언어에서 if, else if, else를 사용한 조건문의 사용법을 단일 조건의 가장 간단한 케이스부터
다중 조건의 복잡한 경우까지 정리해보며 각 경우의 차이를 이해해보도록 하겠습니다.
if문 기본 케이스(단일 조건)
C언어에서 if문은 if(조건){조건 만족 시 실행할 구문} 형태로 작성하게 됩니다.
들여쓰기는 필요 없으나, 조건은 소괄호 () 내에, 실행 구문은 중괄호 {} 내로
괄호 모양을 구분해서 사용해주셔야 합니다.
예시로, 아래 코드를 실행하면 a <= 10 조건이 만족되어
if문 내의 printf 구문이 실행되는 것을 볼 수 있습니다.
#include <stdio.h>
int main(){
int a = 8;
if(a <= 10){
printf("a는 10보다 작거나 같습니다.\n");
}
}
if ~ else 구문(조건 만족 안할 경우 분기)
if문 내의 조건을 만족하지 않을 경우, 다른 구문을 실행하고 싶다면
else를 통하여 조건문을 분기해주시면 됩니다.
사용 구문의 형태는 if(조건){조건 만족 시 실행할 구문}else{조건 만족 안할 시 실행할 구문}
의 문법으로 작성하시면 됩니다.
아래 예시에서는 if문 내의 조건을 만족하지 않아 else문 내의 printf문이 대신 실행됩니다.
#include <stdio.h>
int main(){
int a = 12;
if(a <= 10){
printf("a는 10보다 작거나 같습니다.\n");
}else{
printf("a는 10보다 큽니다.\n");
}
}
else if를 이용한 조건 분기(조건 여러개의 경우)
한 조건문 내에서 비교하고 싶은 조건이 여러개인 경우, else if문을 중간에 넣어
조건을 분기할 수 있습니다.
else if문의 사용법도 if문처럼 조건과 실행할 구문을 각각 ()와 {} 내에 넣어주면 되며,
else if문의 개수의 제한은 없습니다.
else if문을 사용한 경우에도 마지막에 else문으로 모든 조건이 만족하지 않을 경우
실행할 코드를 지정할 수 있으며(else문은 없어도 무관합니다.),
이 때 중간에 1가지 조건이라도 만족되는 경우 해당 조건문의 실행은 종료가 됩니다.
예시로, 아래의 코드를 실행하면 두 번째 else if문 내의 조건이 만족되어
해당 printf문이 실행됩니다.
#include <stdio.h>
int main(){
int a = 9;
if(a < 5){
printf("a는 5보다 작습니다.\n");
}else if(a < 8){
printf("a는 5보단 작지 않지만 8보단 작습니다.\n");
}else if(a < 10){
printf("a는 8보단 작지 않지만 10보단 작습니다.\n"); // 해당 구문 실행
}else{
printf("a는 10보다 크거나 같습니다.\n");
}
}
중첩 조건문 예시(if문 안에 if문)
if문 내부에 또 다른 if문을 사용하는 등 중첩된 형태의 조건문 역시 사용이 가능합니다.
다음 코드에서는 5보다 크다는 메시지와 10보다 크지 않다는 메시지가
둘 다 출력되는 것을 확인하실 수 있습니다.
#include <stdio.h>
int main(){
int a = 9;
if(a > 5){
printf("a는 5보다 큽니다.\n");
if(a > 10){
printf("a는 10보다도 큽니다.\n");
}else{
printf("a는 10보다는 크지 않습니다.\n");
}
}
}
중괄호로 각 조건문의 범위를 잘 정해주는 것이 중요하며,
참고로 if문 내에서도 for, while문의 반복문 등 구문도 얼마든지 사용이 가능합니다.
번외1) 혼동하기 쉬운 문법 : if ~ if vs if ~ else if
if문 여러개를 나열해서 조건문 여러개를 사용한 케이스와
한 조건문 내에서 if ~ else if로 조건을 분기한 케이스의 차이를 혼동하는 경우가 많습니다.
if ~ if처럼 조건문 여러개를 사용한 경우, 각 조건을 만족하면 모두 해당 구문이 실행되는 반면,
if ~ else if로 한 조건문 내에서 분기할 경우 위의 조건 만족 시 아래 조건은 검사하지 않는다는
큰 차이가 있습니다.
#include <stdio.h>
int main(){
int a = 12;
// if ~ if의 경우 : 두 printf문 모두 실행
if(a > 10){
printf("a는 10보다 큽니다.\n");
}
if(a > 5){
printf("a는 5보다 큽니다.\n");
}
// if ~ else if의 경우 : 위의 printf만 실행
if(a > 10){
printf("a는 10보다 큽니다.\n");
} // 여기서 조건문 바로 종료
else if(a > 5){ // 해당 조건은 검사하지 않음
printf("a는 5보다 큽니다.\n");
}
}
번외2) switch ~ case 구문을 활용한 조건문
C언어에서는 if ~ else if ~ else 구문 이외에도
switch ~ case 문법을 사용하여 조건문을 분기하는 것도 가능합니다.
이에 대한 사용 방법과 예제는 아래의 포스팅을 참고해주세요.
이상으로 C언어의 조건문에 관해 정리한 포스팅을 마무리하도록 하겠습니다. 감사합니다.
'C & C++' 카테고리의 다른 글
[C언어, C++] 주석 처리란? / 주석 달기 방법 정리(한 줄, 여러 줄, 단축키) (2) | 2022.05.01 |
---|---|
C++ 스타일의 for문(범위 기반 for문) : 배열, 문자열, 벡터 순회 예제 (0) | 2022.04.20 |
[C언어] 2차원 배열 선언, 값 접근/수정/출력 방법 및 문자열 배열 (0) | 2022.04.17 |