Java 编译器不允许在switch语句中使用字符串变量
在为我的应用程序设置任何条件之前,我需要能够让switch语句在while循环下运行。据说它无法在1.7下的任何编译器下工作。JRE。我不知道这意味着什么,我也不知道如何将变量更改为枚举类型Java 编译器不允许在switch语句中使用字符串变量,java,eclipse,Java,Eclipse,在为我的应用程序设置任何条件之前,我需要能够让switch语句在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;
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.");
}
}
}
}
}
}
在JDK 1.7之前的版本中,字符串不能用作switch语句的一部分。您需要安装JDK1.7并将Eclipse设置为使用此版本的JDK
请参阅这篇文章,其中详细介绍了如何切换JRE/JDK版本。将Java升级到1.7+并在Eclipse中使用它,如果不能,则必须将案例转换为if-else语句。它不会。Java8和更高版本允许您这样做。Java有不同的版本。Java7中引入了将
开关
与字符串
一起使用。检查您的版本。@Trojan.ZBOT我想这项功能是在1.7或Java 7中引入的。您可以将switch
与char
s一起使用。但当我将其切换到1.7时,我的所有“系统”获取诸如my System.out.println之类的错误这些错误可能是由于您没有在IDE中安装和/或配置版本7 JDK造成的。