如何使用Scanner.class两次,其间有一个开关/盒?

时间:2013-07-15 01:14:45

标签: java input switch-statement break

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

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获得输入因为中断;。我如何解决这个问题?我已经尝试在切换/案例之后创建一个新的扫描仪但是也没有用。

1 个答案:

答案 0 :(得分:3)

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

总结:在}

之后放置System.out.println("Good day");