编译器不会在switch语句中使用String变量

时间:2013-12-04 01:06:49

标签: java eclipse

在为我的应用程序创建任何条件之前,我需要能够让while语句在while循环下运行。它说它无法在1.7下的任何编译器下工作。 JRE。我不知道这意味着什么,我也不知道如何将变量更改为枚举类型。

package PokerApp;
import java.util.Scanner;
public class PokerApp {

    public static void main(String[] args) {

int card1 = 0;
int card2 = 0;
int play;
String fc1 = "", fc2 ="";
String answer = "";

Scanner scan = new Scanner(System.in);

//**************************************
//              Card1
//**************************************
System.out.println("Press 1 to evalaute your cards: ");
play = scan.nextInt();
while (play != 0){

System.out.println("First Card: ");
if (scan.hasNextInt())
{
    card1 = scan.nextInt(9)+2;
}
else{
    fc1 = scan.next();
    switch(fc1)
    {
    case "A":
        card1 = 14;
        break;
    case "K":
        card1 = 13;
        break;
    case "Q":
        card1 = 12;
        break;
    case "J":
        card1 = 11;
        break;
        default:System.out.println("Incvalid entry");
    }
//***************************************
//              Card2
//***************************************

System.out.println("Second card: ");
if (scan.hasNextInt())
{
    card2 = scan.nextInt(9) +2;
}
else{
    fc2 = scan.next();
    switch (fc2)
    {
    case "A":
        card2 = 14;
        break;
    case "K":
        card2 = 13;
        break;
    case "Q":
        card2 = 12;
        break;
    case "J":
        card2 = 11;
        break;
    default:System.out.println("Invalid entry.");
    }

    }
}

    }

}
}

2 个答案:

答案 0 :(得分:2)

Allowing Strings in switch statements was new in Java 1.7.将您的Java升级到1.7+并在Eclipse中使用它,或者如果您不能,则必须将您的案例转换为if-else语句。

答案 1 :(得分:0)

在1.7之前的JDK版本中,字符串无法用作switch语句的一部分。您需要安装JDK 1.7并将Eclipse设置为使用此版本的JDK。

请参阅此video,详细说明如何切换JRE / JDK版本。