我刚刚学习JAVA并且在代码的这个特定部分遇到了一些麻烦。我搜索了几个网站并尝试了许多不同的方法,但似乎无法弄清楚如何实现一个适用于不同可能性的方法。
int playerChoice = Integer.parseInt(JOptionPane.showInputDialog(null, "Enter number for corresponding selection:\n"
+ " (1) - ROCK\n (2) - PAPER\n (3) - SCISSORS\n")) - 1;
我想我需要进行某种类型的验证,即使用户没有输入以及不是1,2或3的输入。任何人都有关于如何实现这一点的建议吗?
我尝试了一个while循环,一个if语句在将输入转换为整数之前检查null,以及几个不同类型的if else if方法。
提前致谢!
答案 0 :(得分:5)
你需要做这样的事情来处理错误的输入:
boolean inputAccepted = false;
while(!inputAccepted) {
try {
int playerChoice = Integer.parseInt(JOption....
// do some other validation checks
if (playerChoice < 1 || playerChoice > 3) {
// tell user still a bad number
} else {
// hooray - a good value
inputAccepted = true;
}
} catch(NumberFormatException e) {
// input is bad. Good idea to popup
// a dialog here (or some other communication)
// saying what you expect the
// user to enter.
}
... do stuff with good input value
}
答案 1 :(得分:2)
阅读How to Make Dialogs上的Swing教程中的部分,它实际上向您展示了如何轻松使用JOptionPane,因此您无需验证输入。
您可以使用不同的方法。您可以使用组合框显示选项,也可以使用多个按钮来选择选项。
本教程还向您展示了如何“停止自动对话框关闭”,以便您可以验证用户输入。