所以我正在进行这项学校作业,基本上需要确保用户输入一个有效的选项(1,2或3)。
我应该使用开关,但这就是我所做的:
private void choice() {
try {
Scanner s = new Scanner(System.in);
int option = s.nextInt();
if (option == 1) {
start();
}
if (option == 2) {
info();
}
if (option == 3) {
System.exit(0);
}
throw new InputMismatchException("Enter valid input");
} catch (InputMismatchException e) {
System.out.println(e.getMessage());
}
}
如果您在控制台中输入一个数字,它将返回我的消息,如果您输入任何其他内容,它将返回“null”。这是为什么?因为如果我删除异常并查看堆栈跟踪(例如输入字母时),它会显示一个InputMismatchException。
提前致谢!
答案 0 :(得分:1)
public void choice() throws InputMismatchException {
Scanner s = new Scanner(System.in);
int option = 0;
try {
option = s.nextInt();
} catch (InputMismatchException e) {
throw new InputMismatchException("Enter valid input");
}
if (option == 1) {
System.out.println("e");
} else if (option == 2) {
System.out.println("f");
} else if (option == 3) {
System.exit(0);
} else {
throw new InputMismatchException("Enter valid input");
}
}
public static void main(String[] args) {
try {
new Test().choice();
} catch (InputMismatchException e) {
System.out.println(e.getMessage());
}
}
把int选项放在try里面。完成。