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';
}
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(score){
case 90:
grade = 'A';
break;
case 80:
grade = 'B';
break;
case 70:
grade = 'C';
break;
default:
grade = 'F';
break;
}
위와 같이 상수로 사용하면, 10점 단위로밖에 사용할 수 없어서 케이스를 많이 만들어야 한다(89점도 F로 나옴).
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 성적).
[Java] 연습문제1 - 정수 자료형 숫자 거꾸로 변환 (0) | 2023.01.07 |
---|---|
[Java] 반복문(while - do) (0) | 2023.01.03 |
[Java] 여러가지 연산자_2(비트 이동 연산자, <<, >>, >>>) (0) | 2023.01.02 |
[Java] 여러가지 연산자_2(int숫자 4자리 2진수로 변환 And 연산) (0) | 2023.01.02 |
[Java] 변수와 자료형_4(리스트에서 remove + indexOf 사용법) (0) | 2023.01.02 |
댓글 영역