我正在使用扫描仪接收用户输入。
Scanner scanner = new Scanner(System.in);
Int choice = scanner.nextInt();
if(choice==1) {
System.out.println(" you chosed number 1!")
}
if(choice==2) {
System.out.println(" you chosed number 2!")
}
if(choice==3) {
System.out.println(" you chosed number 3!")
}
if(choice==q) {
System.out.println("the game will end now!");
}
所以当你进入游戏时,你会弹出一个菜单。您可以选择1,2,3或q。如果您按任何数字,游戏将带您到这些部分。 但如果按q,游戏就会结束。
我不知道如何修复,以便我可以输入q和游戏结束。
答案 0 :(得分:4)
您有一些拼写错误,而且您的逻辑错误。你错过了很多分号,他们结束了一个声明。 int何时成为char? char没有用引号括起来。使用next
获取字符串版本。使用.equals()
检查字符串。
Scanner scanner = new Scanner(System.in);
String choice = scanner.next();
if(choice.equals("1")) {
System.out.println(" you chose number 1!");
} else if(choice.equals("2")) {
System.out.println(" you chose number 2!");
} else if(choice.equals("3")) {
System.out.println(" you chose number 3!");
} else if(choice.equalsIgnoreCase("q")) {
System.out.println("the game will end now!");
System.exit(0);
}
您也可以解析为整数并使用==
进行比较。
上面的代码将用户输入作为字符串。然后它将检查它是否等于1,2,3或q,然后相应地执行行。检查Q并忽略大小写。
答案 1 :(得分:0)
由于命令是字符,因此请使用nextByte
代替nextInt
。使用switch
- case
代替if
- else
来简化您的代码。 Convert your byte into char并将其用于switch
,案例将为' 1' ' 2' ' 3'并且' q'。如果您希望游戏继续'q'
在while
- switch
附近case
,并且结尾为“q'”。由于这很可能是家庭作业,所以我不会写源代码。
答案 2 :(得分:0)
你不应该从扫描仪获得nextInt(),coz lateral将被忽略。 另外要防止很多if / else你可以使用switch / case。 scanner.next()将返回一些字符串,之后我们得到每个case并将该字符串与string进行比较。 添加休息以阻止行走。
Scanner scanner = new Scanner(System.in);
switch (scanner.next()) {
case "q" : System.exit(0);
case "1" :
System.out.println("1");
break;
//...
case "7" :
System.out.print("7");
break;
default: System.out.print("Try one more time");
}
如果scanner.next!=任何情况,你都会从"默认"返回消息。
答案 3 :(得分:-1)
在比较字符串时,您不能简单地使用==。 在这种情况下,您需要使用choice.equals(" q")