프로그래밍언어/C언어[초급]

[C언어][초급] Chapter23. 조건문 – if-else 문 사용법과 예제

about_IT 2025. 4. 17. 06:53
728x90

조건이 맞지 않을 때, 그 다음에 뭘 해야 하지?
앞에서 배운 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로 고쳐야 올바른 비교 조건이 됨.

728x90