[자바 기초] 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;

        }
    }
}
  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)