所以我有一个问题,我使用这样的扫描仪:
import java.util.Scanner;
public class Test{
public static void main(String[] args){
Scanner a = new Scanner(System.in);
String b = a.nextLine();
switch(b){
case "Hello":
System.out.println("Hello to you");
break;
case "Hi":
System.out.println("Hi to you");
break;
default:
System.out.println("Good day");
String c = a.nextLine();
switch(c){
case "Bye":
System.out.println("Bye to you");
break;
case "Good bye":
System.out.println("Good bye...");
break;
default:
System.out.println("...");
}
}
}
}
所以我没有得到任何错误,但是当我尝试运行它时,由于中断,我只能从 b 而不是从 c 获得输入;。我该如何解决这个问题?我已经尝试在 switch/case 之后创建一个新的扫描仪,但这也没有用。
最佳答案
在开始第二个 switch 语句之前,您不会关闭第一个 switch 语句。在 switch(b)
block 中的默认语句之后放置一个右括号 }
。它现在的编写方式是您的 switch(c)
语句将仅作为您的 FIRST switch 语句中的 default:
分支的函数执行。运行您的代码,使第一个开关变为默认值,您会注意到第二个开关语句运行。
总结:在 System.out.println("Good day");
之后放置一个 }
关于java - 我如何使用 Scanner.class 两次,中间有一个开关/案例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17645440/