2014-03-25 1 views
0

DrJava에서 매우 간단한 switch 문을 컴파일하는 데 문제가 있습니다.DrJava switch (String) 문제

이 간단한 예입니다 :

switch (sc.next()) { 
    case "abc": output = 0; break; 
    case "bcd": output = 1; break; 
} 

DrJava는 첫 번째 줄에 다음과 같은 메시지를 반환합니다.

오류 : java.lang.String 유형의 값을 켤 수 없습니다. 변환 가능한 int 값 또는 enum 상수 만 허용됩니다.

SSH Secure Shell은 컴파일하는 데 아무런 문제가 없으며 오래 전부터 switch (String)가 구현되었다고 들었습니다. DrJava에서이 문제를 해결하려면 어떻게해야합니까?

* 내 DrJava는 최신 버전입니다.

+1

Java 7 이상을 사용하십시오. – Maroun

+0

switch (String)는 java7 이상 버전에서 사용할 수 있습니다. 자바 버전이 java7보다 작 으면 switch (Strings)를 사용할 수 없습니다. – SpringLearner

+0

DrJava는 무엇인지 모르지만 Java 7 이후 Strings 스위치가 지원됩니다 Java 6 또는 이전 JDK를 사용하는 경우 컴파일되지 않습니다. –

답변

1

Java 버전은 무엇입니까? here를 같이 다른 대안이다,

String text = sc.next() 

if(text.equals("abc")) { 
    output = 0; 
} else if (text.equals("bcd")) { 
    output = 1; 
} 
+0

http://www.java.com/en/download/installed.jsp에 따라 버전 7 업데이트 51이 있습니다 – user3458580

+0

올바르게 클래스 경로를 설정해 보셨습니까? –

+0

이 링크를 확인하십시오. http://docs.oracle.com/javase/tutorial/essential/environment/paths.html –

0

당신은 Java7에서 그렇게 만 할 수 있습니다 문자열에 스위치 문은 그렇지

당신이 상태가되면 좋은 오래된을 사용해야합니다 자바 7에 시작 if 문을 사용하십시오. 실행중인 Java 버전을 확인하려면 콘솔에 java -v 또는 java --version을 입력하면 보유한 버전이 제공됩니다.

0

JDK 7에서는 스위치에서 문자열 비교를 사용할 수 있습니다. 초기 Java 버전에서 (6,4, ..). switch 문에 String을 사용할 수 없습니다.