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 からは取得できません。この問題を解決するにはどうすればよいですか? スイッチ/ケースの後に新しいスキャナーを作成しようとしましたが、それも機能しませんでした。

4

1 に答える 1

3

2 番目の switch ステートメントを開始する前に、最初の switch ステートメントを閉じていません。ブロック}内のデフォルト ステートメントの後に閉じ括弧を配置します。switch(b)現在の記述方法では、ステートメントはFIRST switch ステートメントswitch(c)の分岐の関数としてのみ実行されます。default:最初のスイッチをデフォルトにするコードを実行すると、2 番目の switch ステートメントが実行されることがわかります。

要約すると}:System.out.println("Good day");

于 2013-07-15T01:16:43.757 に答える