JAVA

JAVA switch문

테라시아 2024. 11. 8. 19:33

switch
    - 조건식의 결과가 아니라 값만으로 비교
    - switch ~ case
    - if 문보다 속도가 빠름
    사용방법)
        switch(변수){
            case 값1:
                값1일 때 수행할 문장;
                break;
            case 값2:
                값2일 때 수행할 문장;
                break;
            ...
            default:
                모든 case에 해당하지 않을 때 수행할 문장;
        }

 

☆ Code

import java.util.Random;

import util.MyUtil;

public class SwitchEx {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Random rd = new Random();
		
		int i = rd.nextInt(3);  // i는 0, 1, 2 중 하나
		
		switch(i) {
			case 0:
				MyUtil.p("아 0이시네요 꽝입니다");
				break;
			case 1:
				MyUtil.p("아 1이시네요 이것도 꽝입니다.");
				break;
			case 2:
				MyUtil.p(MyUtil.RED + "This is the TWO!!!!!" + MyUtil.END);
				MyUtil.p("축!!!!! 당첨!!! 거액의 상품 증정!!");
				break;
			default:
				MyUtil.p("엄청난 버그 발생..... 시스템 이상함....");
		}
		
		// 의도적으로 break를 빼는 경우
		// 아래 단계 작업이 상위 작업을 반드시 거쳐야 하는 경우
		// 작업 간 포함 개념
		
		int workProcess = rd.nextInt(4);
		MyUtil.p("");
		MyUtil.p(MyUtil.GREEN + "***앞으로의 작업 단계***" + MyUtil.END);
		
		switch(workProcess) {
			case 0:
				MyUtil.p("Step1 : 작업준비");
			case 1:
				MyUtil.p("Step2 : 개발준비");
			case 2:
				MyUtil.p("Step3 : 개발완료");
			case 3:
				MyUtil.p("Step4 : 출시준비");
		}
		
		// if statement로 구현한다면
		if(workProcess == 0) {
			MyUtil.p("Step1 : 작업준비");
			MyUtil.p("Step2 : 개발준비");
			MyUtil.p("Step3 : 개발완료");
			MyUtil.p("Step4 : 출시준비");
		}
		else if(workProcess == 1) {
			MyUtil.p("Step2 : 개발준비");
			MyUtil.p("Step3 : 개발완료");
			MyUtil.p("Step4 : 출시준비");
		}
		else if(workProcess == 2) {
			MyUtil.p("Step3 : 개발완료");
			MyUtil.p("Step4 : 출시준비");
		}
		else if(workProcess == 3) {
			MyUtil.p("Step4 : 출시준비");
		}

	}

}