1

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

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 之后创建一个新的扫描仪,但这也没有用。

4

1 回答 1

3

在开始第二个之前,您不会关闭第一个 switch 语句。在块}中的默认语句之后放置一个右括号。switch(b)它现在的编写方式是您的switch(c)语句将仅作为default:您的 FIRST switch 语句中的分支的函数执行。运行您的代码,使第一个 switch 变为默认值,您会注意到第二个 switch 语句运行。

总结:放在}后面System.out.println("Good day");

于 2013-07-15T01:16:43.757 回答