Java 6.조건문2

업데이트:
1 분 소요

switch

1. switch - case 문

  • if ~ else if ~ else 문을 가독성 좋게 구현
  • 비교조건이 특정 값이나 문자열인 경우 사용
  • break 문을 사용하여 각 조건이 만족되면 switch 블록을 빠져나오도록 함
 switch(조건식){
        case 1:
            처리 1
            break;
        case 2:
            처리 2
            break;
        default:
            처리 n         
        }
import java.util.Scanner;

/*
 *  사용자로부터 월을 입력받아서 
 *  해당 월의 마지막 날짜를 출력하는 프로그램을 작성하시오.
 *  단 2월은 28일로 가정한다.
 *  
 *  예시) 월: 3
 *  	31일까지 입니다.
 */


public class SwitchTest3 {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		System.out.print("월 : ");
		int month=sc.nextInt();
		
		switch(month) {
			case 1: case 3:	case 5: case 7:	case 8:	case 10: case 12:
				System.out.println("31일까지입니다.");
				break;
			case 4:	case 6:	case 9:	case 11:
				System.out.println("30일까지입니다.");
				break;
			case 2:
				System.out.println("28일까지입니다.");
				break;
			default :
				System.out.println("존재하지 않는 달입니다.");
		}
		sc.close();
	}
}
  • 조건식
    - int 범위 이하의 점수
    - String 값
  • 조건식의 결과와 일치하는 case문으로 이동 후, break문을 만날때까지 실행함.
    - break문이 없으면 switch 문을 벗어나지 않고 계속 실행
    - break문 존재해야함.

2. Java 14 부터 지원되는 switch 구문

  • 간단하게 쉼표(,)로 조건 구분
  • 반환값을 받을 수 있음.
  • yield 키워드 사용
import java.util.Scanner;

public class SwitchTest4 {

	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		System.out.print("월 : ");
		int month=sc.nextInt();		
		int day =	switch(month) {
			case 1, 3, 5, 7, 8, 10, 12 ->{
			System.out.println("31일 까지 입니다.");
			yield 31;
			}
			case 4,6,9,11 ->{
				System.out.println("30일 까지 입니다.");
				yield 30;
			}
			case 2 ->{
				System.out.println("28일 까지 입니다.");
				yield 28;
			}
			default ->{
				System.out.println("존재하지 않는 달입니다.");
				yield 0;
			}
		};
		
		System.out.println(month+"월은 "+ day + "일입니다.");
		
		sc.close();
	}

}

댓글남기기