본문 바로가기

개발 일기/Java Programming

switch~case 문

switch~case 문

 

1. switch~case 문

 

switch(정수 값) {
	case 정수 값 1:
    	실행할 문장 1;
        break;
    case 정수 값 2:
    	실행할 문장 2;
        break;
    default:
    	실행할 문장 3;
        break;
}

 

switch~case문의 형식과 순서도

 

switch~case 문 사용 예1

import java.util.Scanner;

public class Ex05_09 {
	public static void main(String[] args){
    	Scanner s = new Scanner(System.in);
        int a;
        
        System.out.printf("1~4 중에 선택하세요 : ");
        a = s.nextInt();
        
        switch(a) { #입력한a값에따라서분기
        case 1: #a가1이면13행을수행하고,14행에서switch블록을빠져나감
        	System.out.printf("1을 선택했다\n");
            break;
        case 2:
        	System.out.printf("2를 선택했다\n");
            break;
        case 3;
        	System.out.printf("3을 선택했다\n");
            break;
        case 4:
        	System.out.printf("4를 선택했다\n");
            break;
        default: #a가1,2,3,4에해당되지않을경우에수행
        	System.out.printf("이상한걸 선택했다.\n");
        }
    }
}

1 ~ 4 중에 선택하세요 : 3

3을 선택했다

 

switch~case문 사용 예2

import java.util.Scanner;

public class Ex05_10 {
	public static void main(String[] args) {
    	Scanner s = new Scanner(System.in);
        int year;
        
        System.out.printf("출생연도를 입력하세요 : ");
        year = s.nextInt();
        switch(year%12) { 
        	case 0 : System.out.printf("원숭이띠\n"); break; #입력한연도를12로나눈나머지값에의해분기
            case 1 : System.out.printf("닭띠\n"); break;
            case 2 : System.out.printf("개띠\n"); break;
            case 3 : System.out.printf("돼지띠\n"); break;
            case 4 : System.out.printf("쥐띠\n"); break;
            case 5 : System.out.printf("소띠\n"); break;
            case 6 : System.out.printf("호랑이띠\n"); break;
            case 7 : System.out.printf("토끼띠\n"); break;
            case 8 : System.out.printf("용띠\n"); break;
            case 9 : System.out.printf("뱀띠\n"); break;
            case 10 : System.out.printf("말띠\n"); break;
            case 11 : System.out.printf("양띠\n"); break;
         }
     }
}

출생연도를 입력하세요 : 1994

개띠

 

case 뒤에 오는 수는 변수나 실수는 불가능하다.

정수, 상수(문자), 문자열만 가능하다.

 

이 코드는 if else(중첩)로 바꿀 수 있다.

 

 

 

실습

 

- 입력한 수가 +(양수)인지, -(음수)인지를 출력하는 프로그램을 중첩 if문을 사용해서 작성하시오.

 

import java.util.Scanner;

public class EX05_01 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner s = new Scanner(System.in);
		int a;
		
		System.out.printf("처리할 수를 입력하세요 : ");
		a = s.nextInt();
		
		if(a>0)
			System.out.print("입력한 수는 + ");
		else
			if(a<0)
				System.out.printf("입력한 수는 - ");
			else
				System.out.printf("입력한 수는 0 ");
		
		System.out.printf("입니다. \n ");
				
	}

}

처리할 수를 입력하세요 : -15

입력한 수는 - 입니다.