извлечения незаконного Языка: Java, IDE: затмение Марсав то время как цикл разбор Double.IsNaN
программа должна запрашивать у пользователя (с помощью 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());
}
попытаться разобрать вход непосредственно в качестве двойного и быть в курсе, за исключение ... –
'попробовать/catch' должен находиться внутри цикла while. – 4castle
@ ΦXocę 웃 Пepeúpa ツ * NaN обычно представляет бесконечные значения. * Не совсем. Существуют отдельные значения для положительной и отрицательной бесконечности. – shmosel