[C언어][초급] Chapter23. 조건문 – if-else 문 사용법과 예제
조건이 맞지 않을 때, 그 다음에 뭘 해야 하지?
앞에서 배운 if문은 조건이 참일 때만 코드를 실행하고, 거짓이면 아무 일도 하지 않았습니다.
하지만 실제 상황에서는 조건이 참일 때와 거짓일 때 각각 다르게 행동해야 할 경우가 더 많습니다.
예를 들어 “60점 이상이면 합격, 아니면 불합격” 같은 조건이죠.
이럴 때 사용하는 것이 바로 if-else 문입니다.
● if-else 문이란?
if-else 문은 조건이 참일 때와 거짓일 때 실행할 내용을 각각 지정할 수 있는 조건문입니다.
if (조건식) {
// 조건이 참일 때 실행
} else {
// 조건이 거짓일 때 실행
}
● 예제: 합격 / 불합격 판별
int score = 75;
if (score >= 60) {
printf("합격입니다.\n");
} else {
printf("불합격입니다.\n");
}
- score가 60 이상이면 "합격입니다." 출력
- 그렇지 않으면 "불합격입니다." 출력
● if-else 흐름 구조
조건식이 참 → if 블록 실행
조건식이 거짓 → else 블록 실행
즉, 둘 중 하나만 실행됩니다. 동시에 실행되는 경우는 절대 없습니다.
● 중괄호 생략 가능?
if와 마찬가지로 else도 한 줄짜리 코드라면 중괄호 {}를 생략할 수 있습니다.
하지만 실수 방지를 위해 괄호는 항상 써주는 걸 추천합니다.
● 예제: 짝수/홀수 판별
int num = 9;
if (num % 2 == 0) {
printf("짝수입니다.\n");
} else {
printf("홀수입니다.\n");
}
● 조건 표현의 예
if (age >= 20) {
printf("성인\n");
} else {
printf("미성년자\n");
}
● if-else 중첩은 가능할까?
가능합니다. 하지만 조건이 많아지는 경우에는 else if나 switch문으로 구조를 바꾸는 게 더 깔끔합니다.
if (score >= 90) {
printf("A등급\n");
} else {
if (score >= 80) {
printf("B등급\n");
} else {
printf("C등급 이하\n");
}
}
if-else 문은 하나의 조건에 두 가지 결과를 명확하게 나눌 수 있는 구조입니다.
조건이 참일 때와 거짓일 때 각각 해야 할 동작이 정해져 있다면 반드시 if-else 문을 사용해야 하고,
이를 통해 프로그램 흐름을 훨씬 더 유연하게 제어할 수 있습니다.
실습 문제
아래 문제는 직접 코드를 작성해보고, 실행 결과를 확인한 후 스스로 정답을 유추해보는 형태입니다.
정답은 바로 아래에서 확인할 수 있습니다.
문제 1
정수형 변수 score가 60 이상이면 "합격", 아니면 "불합격"을 출력하는 if-else 문을 작성하세요.
문제 2
다음 코드의 실행 결과는 무엇인가요?
int num = 4;
if (num % 2 == 0) {
printf("짝수입니다.\n");
} else {
printf("홀수입니다.\n");
}
문제 3
사용자의 나이를 변수 age에 저장하고, 20세 이상이면 "성인", 아니면 "미성년자"를 출력하는 코드를 작성하세요.
문제 4
다음 코드에서 출력 결과가 "홀수입니다."가 되도록 변수 n을 수정하세요.
int n = ?;
if (n % 2 == 0) {
printf("짝수입니다.\n");
} else {
printf("홀수입니다.\n");
}
문제 5
다음 중 올바른 if-else 문이 아닌 것은?
A.
if (x > 0)
printf("양수");
else
printf("0 또는 음수");
B.
if (x = 5)
printf("x는 5");
else
printf("x는 5가 아님");
C.
if (score >= 90) {
printf("A등급");
} else {
printf("B등급 이하");
}
▶ 정답 확인하기
정답 1
int score = 73;
if (score >= 60) {
printf("합격\n");
} else {
printf("불합격\n");
}
정답 2
출력: 짝수입니다.
설명: 4 % 2 == 0 → 조건이 참
정답 3
int age = 18;
if (age >= 20) {
printf("성인\n");
} else {
printf("미성년자\n");
}
정답 4
int n = 9; // 또는 1, 3, 5 등 홀수 아무거나
정답 5
정답: B
설명: x = 5는 대입 연산자이며 조건이 항상 참으로 처리될 수 있음.
→ x == 5로 고쳐야 올바른 비교 조건이 됨.