如何使用Scanner.class两次,中间有一个开关/大小写



所以我遇到了一个问题,我使用这样的扫描仪:

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"); 之后放置一个}

相关内容

最新更新