2013-07-15 34 views
1

所以我一有問題,我用的掃描儀這樣的:如何使用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("..."); 

      } 
     } 
    } 
} 

所以我沒有得到任何錯誤,但是當我嘗試運行它,我只能通過B獲得輸入,但不能從C因爲休息;我怎麼解決這個問題?我已經嘗試在開關/外殼之後創建一個新的掃描儀,但是這也不起作用。

回答

3

在開始第二個開始之前,你並沒有關閉你的第一個switch語句。在switch(b)塊中的默認語句之後放置一個右括號}。現在寫入的方式是,您的switch(c)語句將僅作爲FIRST switch語句中的default:分支的函數執行。運行你的代碼導致第一個開關默認,你會注意到第二個開關語句運行。

總結:在System.out.println("Good day");

之後放置一個 }