语言:Java IDE的:月蚀
该方案被认为提示用户(使用的JOptionPane)为正值。 我试图赶上无效项。 我while语句捕捉负数,但不是字符串。 当输入一个负数,则提示再次示出,但输入的字符串值时,异常被捕获,并且程序继续前进(当它应该重新提示用户)。
一旦正值已经输入,程序将其分配给另一个类的值。 (我们正在学习MVC OOP设计模式)。
Double.isNaN(Double.parseDouble(H))--->谁能帮我找到我错过了什么?
// prompt to get bandwidth from user
// check for validity
// if invalid, prompt again
try{
h = JOptionPane.showInputDialog("Enter bandwidth as a positive number");
// loop until parsed string is a valid double
while (Double.isNaN(Double.parseDouble(h)) || Double.parseDouble(h) <=0) {
h = JOptionPane.showInputDialog("Enter bandwidth as a positive number");
}
// h has been set to valid double, set it to bandwidth
model.setBandwidth(Double.parseDouble(h));
}catch(NumberFormatException|NullPointerException NFE){
System.err.println("Caught exception: " + NFE.getMessage());
}