所以我遇到了一个问题,我使用这样的扫描仪:
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("...");
}
}
}
}
所以我没有得到任何错误,但是当我尝试运行它时,由于break;,我只能从b获得输入,而不能从c获得输入;。我该如何解决这个问题?我已经尝试过在切换/案例后创建一个新的扫描仪,但也没有成功。
在开始第二个switch语句之前,您没有关闭第一个switch声明。在switch(b)
块中的默认语句后面放置一个右括号}
。现在的编写方式是,switch(c)
语句将仅作为FIRST switch语句中default:
分支的函数执行。运行您的代码,使第一个switch默认,您会注意到第二个switch语句正在运行。
总之:在System.out.println("Good day");
之后放置一个}