2015-08-18 58 views
0

这个问题不是重复的,因为没有任何来自线程的修复,这是一个“重复”的工作对我来说。IntelliJ IDEA Switch Statement Error

我正在制作一个基本的计算器程序作为我的第一个Java程序。要做到这一点,我使用switch语句来选择公式操作,但是当我尝试运行switch语句,我得到一个错误:

java: strings in switch are not supported in -source 1.6 (use -source 7 or higher to enable strings in switch).

我已经检查了其他的答案,但他们都不是有道理的在我的情况。我正在使用Java 8 JDK,我的项目级别是8,应该足够高以运行此代码。

我的代码:

boolean pass = false; 
    char sOP = 'n'; 

    while(pass == false) { 

     System.out.print("Operator, +, -, *, or /: "); 
     String op = scanner.nextLine(); 

     switch (op) { 
      case "+": 
       sOP = '+'; 
       pass = true; 
       break; 
      case "-": 
       sOP = '-'; 
       pass = true; 
       break; 
      case "*": 
       sOP = '*'; 
       pass = true; 
       break; 
      case "/": 
       sOP = '/'; 
       pass = true; 
       break; 
      default: 
       System.out.println("Invalid operator, please reenter."); 
       pass = false; 

     } 
    } 

我应该怎么做才能解决这个问题?

+0

这不是Intellij相关的。它可能是任何体面的IDE,你会得到和等效的错误消息。 – ChiefTwoPencils

+0

如果您确定自己的一切都正确,那么重建或重新启动会有所帮助。这个错误似乎表明,虽然你正在使用的地方7. – ChiefTwoPencils

+0

Bneac,包括第二个问题,与错误和标题指出的主要问题无关,可能不是一个好主意,因为人们很可能会错过它,而答案只会针对你问题的第一部分。由于这些原因,最好问第二部分(关于表达式的动态评估)作为一个单独的问题。 – jpw

回答

0

看起来像switch语句,String直到Java 1.7才被支持。您应该升级您的Java版本。

转到Project StructureSDKs并选择正确的Java SDK版本。

+0

虽然我正在使用Java 8,那是我用IntelliJ IDEA设置的JDK。 – Bneac

+0

@Bneac仔细检查1.8 SDK是否在项目中被选中。 'Project Structure' - >'SDKs' – Rohan

+0

我正在使用Java版本1.8.0_51。 – Bneac