Java_08_switch문 정리

지원·2024년 3월 23일
0

Java

목록 보기
9/13
post-thumbnail

기본 문법 (Syntax)

if문의 조건 부분은 불린 결과값

switch문의 조건 부분은 숫자, 문자열 등의 결과값을 내는 식
그리고 그 결과값에 따라 실행 되는 코드가 정해지는 것이다.

int i = 10;
if (i % 3 == 0) { // i < 20 : 불린 식, 변수, 메소드
    System.out.println("C 구역입니다.");
} else if (1 % 3 == 1) {
    System.out.println("A 구역입니다.");
} else {
    System.out.println("B 구역입니다.");
}

switch (i % 3) { // i : 불린이 아닌 식, 변수, 메소드
    case 0:
        System.out.println("C 구역입니다.");
        break;
    case 1:
        System.out.println("A 구역입니다.");
        break;
    default:
        System.out.println("B 구역입니다.");
        break;
}

합격-불합격, 옳다-그르다 등과 같은 방식으로 흐름을 나누는 것보다
여러 개의 동등한 조건의 나열에는 switch문이 더 편리하다.

예제 1

/*
 * A+: 100
 * A : 90-99
 * B : 80-89
 * C : 70-79
 * D : 60-69
 * F :  0-59
 */

// 시험 점수
int score = 97;

// 성적
String grade;

정수 나누기 정수는 소수부분이 버려진다.

score / 10 하면 9.7이었는데 소수 부분이 버려지고 9가 된다.
이 점을 이용하면 score가 90-99일 때를 score / 10이
9와 같을 때로 얘기할 수 있다.
마찬가지로 score가 80-89일 때 score / 10은 8이고,
score가 70-79일 때 score / 10은 7이다.

switch (score / 10) {
    ...
}

그리고 switch문의 내용을 적어야 하는데 score / 10이 각각 10, 9, ..., 6인 경우를 적고, 모두 아닐 경우의 default도 적어보자.

switch (score / 10) {
    case 10:
        grade = "A+";
        break;
    case 9:
        grade = "A";
        break;
    case 8:
        grade = "B";
        break;
    case 7:
        grade = "C";
        break;
    case 6:
        grade = "D";
        break;
    default:
        grade = "F";
        break;
}

이렇게 몇 가지 경우로 딱딱 나누어지는 경우에는
if, else if를 쓰는 것보다 switch를 쓰는 게 훨씬 직관적이다.

예제 2

switch (grade) {
    case "A+":
    case "A":
    case "B":
        System.out.println("참 잘했어요!");
        break;
    case "C":
    case "D":
        System.out.println("조금만 더 노력해 볼까요?");
        break;
    case "F":
        System.out.println("Fail입니다.");
    default:
        System.out.println("다시 수강해주세요.");
        break;
}

0개의 댓글

관련 채용 정보