[자바 기초] switch case 문에서 final 상수 사용 관련 질문입니다.
조회수 2573회
if-else 문을 쓰면더 효율적인걸 알고있지만 switch case로 해결해야 하는 숙제입니다. //final int myS = 'A' 로 두었을때는 작동하지만 scanner 메서드로 입력받고 case expressions must be constant expressions 에러가 생깁니다.
자바 특정 버전 이후로 상수로 입력받을 수 있는거로 update 되었다고 하는데 final로 처리되지 않은 부분이 어디고 어떻게 해결해야 할까요 ?
import java.util.Scanner;
public class Test04 {
public static final int readData() {
Scanner sc = new Scanner(System.in);
System.out.println("입력 : ");
return sc.nextInt();
}
public static final int myS = readData();
public static void main(String[] args) {
//final int myS = 'A';
switch (myS) {
case (myS):
case (myS + 0):
case (myS + 2):
case (myS + 3):
case (myS + 4):
case (myS + 5):
case (myS + 32 + 0):
System.out.println("정상값 입력");
break;
default:
System.out.println("정상값이 아닙니다.");
break;
}
}
}
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력