java - 我如何使用 Scanner.class 两次,中间有一个开关/案例?

标签 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 获得输入;。我该如何解决这个问题?我已经尝试在 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/

相关文章:

java - 如何断言集合中的所有值都具有某个属性

c++ - 不会等待 getline C++

java - 什么是 Java 等同于 Perl 的菱形运算符 <>?

javascript - 想要根据下拉框选择显示/隐藏div

java - 使用 ColdFusion 从 Outlook .msg 文件中提取附件

java - 如何在不使用任何第三方工具的情况下通过 Java 代码将我的 Java 代码转换为 EXE?

java - 根据输入的内容输出不同数组值的组合

int = 0 上的 php switch 语句错误

Java 服务器不从外部机器获取包

android - 创建应用程序时调用多个 fragment