☕
java handbook
  • Part 01. Hello World!
    • Java 환경설정
    • Java 학습 Flow
    • JVM
    • 변수
      • 상수와 리터럴
      • 기본형과 참조형
      • 문자와 문자열
  • Part 02. 연산자
    • 증감 연산자와 부호 연산자
    • 형변환 연산자와 자동 형변환
    • 사칙 연산자와 산술변환
    • Math 클래스와 나머지 연산자
    • 비교 연산자와 문자열의 비교
    • 논리 연산자와 비트 연산자
    • 조건 연산자와 대입 연산자
  • Part 03. 조건문과 반복문
    • IF
    • SWITCH
    • FOR
    • 임의의 정수 만들기
    • WHILE
    • break 와 continue
  • Part 04. 배열
    • 배열의 길이와 초기화
    • 배열 연습하기
    • String 배열
    • 2차원 배열
    • Array
  • Part 05. 객체지향
    • 클래스와 객체
    • 객체의 생성과 배열
    • 클래스의 정의
    • 변수의 종류
    • 메서드
    • 기본형 매개변수 와 참조형 매개변수
    • static 메서드와 인스턴스 메서드
    • 오버로딩
    • 생성자
    • this 와 this()
    • 변수의 초기화
Powered by GitBook
On this page
  • switch
  • switch 문의 제약조건
  1. Part 03. 조건문과 반복문

SWITCH

switch

switch (조건식) {

case 값1:

조건식의 결과가 값1과 같을 경우 수행할 문장;

break;

case 값2:

조건식의 결과가 값2와 같을 경우 수행할 문장;

break;

....

default:

조건식의 결과와 일치하는 case 문이 없을 때 수행할 문장;

}

  • 처리해야 하는 경우의 수가 많을 때 유용한 조건문입니다.

  • break; 를 작성해 주지 않으면 switch 문 끝까지 실행됩니다.

  • default 문은 생략 가능합니다.

  • if 조건문과 비교해보면 if 는 조건식 결과에 true/false 만 가능하고 switch 는 정수나 문자열 만 가능합니다.

  • 실행 흐름 확인하기

    1. 조건식을 계산한다.

    2. 조건식의 결과와 일치하는 case 문으로 이동한다.

    3. 해당 case 문의 문장들을 수행한다.

    4. break; 를 만나거나 switch 문이 끝나면 switch 문 전체를 빠져나간다.

switch 문의 제약조건

  1. switch 문의 조건식 결과는 정수 또는 문자열 이어야 합니다.

  2. case 문의 값은 정수 상수(문자 포함), 문자열 만 가능하며, 중복되지 않아야 한다.

int num, result;

final int ONE = 1;

switch (result) {

case '1': // OK. 문자 리터럴(정수 49와 동일)

case ONE: // OK. 정수 상수

case "YES" // OK. 문자열 리터럴

case num: // Error. 변수는 불가능

case 1.0: // Error. 실수도 불가능

}

  • 아래 예제코드로 학습해 보겠습니다.

class Control2_1 {
    public static void main(String[] args) {
        int month = 8;
        String monthString = "";
        switch (month) {
            case 1:  monthString = "January";
                     break;
            case 2:  monthString = "February";
                     break;
            case 3:  monthString = "March";
                     break;
            case 4:  monthString = "April";
                     break;
            case 5:  monthString = "May";
                     break;
            case 6:  monthString = "June";
                     break;
            case 7:  monthString = "July";
                     break;
            case 8:  monthString = "August";
                     break;
            case 9:  monthString = "September";
                     break;
            case 10: monthString = "October";
                     break;
            case 11: monthString = "November";
                     break;
            case 12: monthString = "December";
                     break;
            case 0: case 13:
                     System.out.println("이런식으로 case 문을 사용할 수 있습니다.");
                     break;
            case 15:
            default: monthString = "Invalid month";
        }
        System.out.println(monthString);
    }
}

Ref. Java의 정석 기초편 Chapter4(9, 10. 11)

PreviousIFNextFOR

Last updated 2 years ago

Ref.

switch