我目前有这个代码
我的问题是,当我给出数字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();
}
}
答案 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);
}