상세 컨텐츠

본문 제목

[Java] 조건문(성적 판정 if문을 switch로 전환)

Java/제로베이스

by Gopythor 2023. 1. 3. 04:03

본문

728x90
반응형

If문

int score = 60;
char grade = 0;

if(score >=90){
    grade = 'A';
} else if (score >=80){
    grade = 'B';
} else if (score >=70){
    grade = 'C';
} else {
    grade = 'F';
}

 

switch문(case  조건식)

score = 90;
switch(score){
    case score >= 90:
        grade = 'A';
        break;
    case score >= 80:
        grade = 'B';
        break;
    case score >= 70:
        grade = 'C';
        break;
    default:
        grade = 'F';
        break;
}

위의 코드는 동작하지 않는다. 왜냐하면 switch 조건문은 상수만 사용할 수 있기 때문이다.

switch문(case 상수)

switch(score){
    case 90:
        grade = 'A';
        break;
    case 80:
        grade = 'B';
        break;
    case 70:
        grade = 'C';
        break;
    default:
        grade = 'F';
        break;
}

위와 같이 상수로 사용하면, 10점 단위로밖에 사용할 수 없어서 케이스를 많이 만들어야 한다(89점도 F로 나옴).

 

switch문(나누기 후 몫 값으로 case)

switch(score/10){
    case 10:
    case 9:
        grade = 'A';
        break;
    case 8:
        grade = 'B';
        break;
    case 7:
        grade = 'C';
        break;
    default:
        grade = 'F';
        break;
}

case 10을 작성한 이유(break없이)는, 100점을 나누면 10이 되는데, default로 빠질 것을 방지하는 목적이다(case 9 의 A 성적).

 

728x90
반응형

관련글 더보기

댓글 영역