java中的switch语句问题

时间:2014-10-26 01:22:54

标签: java switch-statement

我目前有这个代码

我的问题是,当我给出数字1或2时,它没有给出它并且只是说“无效输入”#。

如果有人能解释我为什么会这样,那就太好了。

感谢您的回答。

 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.PrintStream;

 public class Screen {
    private static BufferedReader stdin;
    private static PrintStream os;

    public static void main(String[] args) throws IOException{

      try {  
          stdin = new BufferedReader(new InputStreamReader(System.in));
      } catch (Exception e) {
          System.exit(1);
      }

     try {
        switch (Integer.parseInt(selectAction())) {
        case 1:
           os.println("1");
           System.err.print("Hello World ");   
           break;
        case 2:
           os.println("2");
           System.err.print("Another Word ");   
           break;
        }
     } catch (Exception e) {
        System.err.println("not valid input");
     }

   }

   public static String selectAction() throws IOException {
        System.out.println("1. Hello World.");
        System.out.println("2. Another Word.");
        System.out.print("\nMake selection: ");

        return stdin.readLine();
    }
}

1 个答案:

答案 0 :(得分:0)

os提供初始化以阻止NullPointerException。如果我更改os声明

,您的代码就可以使用
private static PrintStream os = System.out;

此外,不要吞下Exception

} catch (Exception e) {
  System.err.println("not valid input: " + e.getMessage());
  e.printStackTrace(System.err);
}