Я хочу проверить, правильно ли введен код моего кода, поэтому я поставил много утверждений, проверяющих требования, и я не могу понять, почему он не работает. Предполагается, что n меньше или равно 91 и/или десятичной (я не хочу, чтобы мой вход тоже был). Это связано с тем, что пользователь не нарушает программу, набрав десятичную или несколько выше, чем 91.проверка на наличие нежелательного ввода (обработка ошибок)
while (Error == 1) {
n = user_input.nextDouble();
if ((n - Math.round(n) <= 0.9) && (n - Math.round(n) >= 0.1)) {
System.out.println("Error: No Decimal points please, try again");
continue;
}
if ((n - Math.round(n) <= 0.9) && (n - Math.round(n) >= 0.1) && (n > 91)) {
System.out.println("Error: No Decimal points please, try again");
System.out.println("Error: Number too high, try again");
continue;
}
if (n > 91) {
System.out.println("Error: Number too high, try again");
continue;
}
if (n == Math.round(n)) {
Error = 0;
}
if (n == 0) {
break;
}
}
По какой-то причине, когда я типа 9.1 или 9.9 он не делает ничего вообще. Это пусто ... Я сделал> =, который должен проверить, если он больше или равен, и < =, который должен проверить, меньше или равно. Это неправильно?
Если вы не хотите ничего, кроме целых чисел, то зачем спрашивать о двойном? –
Так что, если кто-то вводит нежелательный вход, он не разбивает программу – TheLittleCoder
Так что, если я введу что-то, что не цифра? Если вы хотите предотвратить сбой программы, вам нужно поймать исключение синтаксического анализа. –