java switch

limchard·2023년 10월 26일
0

java

목록 보기
26/48
switch(n) {
    case 1:
        System.out.println("n is 1");
        break; // break 가 없을경우 끝까지 실행
    case 2:
        System.out.println("n is 2");
        break;
    case 3:
        System.out.println("n is 3");
        break;
    case 4:
        System.out.println("n is 4");
        break;
    case 5:
        System.out.println("n is 5");
        break;
    default :
        System.out.println("n > 5");
        break;
}

switch에 대해 알아보자
if와 같이 조건을 따져서 실행한다.

switch의 경우 case 별로 하나하나 정해줘야 한다. case가 범위같은 설정이 아니라 값을 명확히 기입해줘야 한다.
그래서 if만큼 자주 쓰이진 않는다고 한다.
또한 'break'를 꼭 기입해줘야 한다
"break"를 기입 안하면 뒤의 경우가 모두 시행된다.
답이 3이라고 할 때 break가 없으면 결과값은 3,4,5 까지 뒤의 내용까지 모두 이어져서 나온다.
결과를 아래와 같이 보여준다

1. break가 있을때 결과값

n is 3

2. break가 없을때 결과값

n is 3
n is 4
n is 5
n > 5

추가로 switch의 경우 급을 다 맞춰줘야 한다.
즉 int의 경우 int로, string의경우 string으로, char의 경우 char로..
아래 예제문제를 참고하자

int n=3;

 

switch(n) {
    case 1:
        System.out.println("n is 1");
        break; // break 가 없을경우 끝까지 실행
    case 2:
    	System.out.println("n is 2");
    	break;
    case 3:
    	System.out.println("n is 3");
    	break;
    case 4:
    	System.out.println("n is 4");
    	break;
    case 5:
    	System.out.println("n is 5");
    	break;
    default :
    	System.out.println("n > 5");
    	break;
}

String msg="happy";
// 문자열은 jdk8부터 가능하다.	
switch(msg){
    case "hello":
    	System.out.println("안녕");
    	break;
    case "happy":
    	System.out.println("행복하다");
    	break;
    case "nice":
    	System.out.println("쪼아요");
    	break;
}

// 점수 이용하여 학점구하기
int score=77;
char grade;

switch(score/10) {
    case 10 :
    case 9 :
        grade='A';
        break;
    case 8:
    	grade='B';
    	break;
    case 7:
    	grade='C';
    	break;
    case 6:
    	grade='D';
    	break;
    default:
    	grade='F';
	}
System.out.println(grade);

윤달 예제

그리고 종종 나오는 문제인 윤달에 대한 코드다
나중에 혹시 쓸일이 있으려나?

public static void main(String[] args) {

    /* 년도를 입력하자.
    * 4로 나누면 윤년
    * 100으로 나누어 나머지가 0이면, 평년
    * 400으로 나누어 나머지가 0이면, 윤년 */

    Scanner sc=new Scanner(System.in);
    int year;

    System.out.println("년도를 입력하세요.");
    year=sc.nextInt();

    if(year%4==0&&year%100!=0||year%400==0){
    System.out.println(year+"년도는 윤년입니다.");
    } else {
    System.out.println(year+"년도는 평년입니다.");
	}
} 
profile
java를 잡아...... 하... 이게 맞나...

0개의 댓글