Просто подумайте об этом концептуально. Цель состоит в том, чтобы получить действительную дробь. До того, как вы спросили пользователя, у вас нет дроби, поэтому она недействительна. Затем вы спрашиваете пользователя, и он может быть действительным или недействительным. Если он действителен, вы можете выйти из l oop, потому что вы преуспели, если он недействителен, вам нужно спросить их снова, поэтому вам нужно снова l oop.
Рассмотрим этот простой пример . Мы продолжим l oop, если сделаем случайное число от 6 до 10, и выйдем, если выберем число 0-5
boolean shouldContinue = true;
while(shouldContinue) {
shouldContinue = new Random().nextInt(10) > 5;
}