Пытаюсь понять, как работает данное решение с валидатором (вложенный в 'do' while). Никак не могу понять порядок исполнения кода.
Не понимаю, почему age = s.nextInt(); идет ниже цикла. В каком порядке здесь что выполняется?
void setAge() {
Scanner s = new Scanner(System.in);
do {
while (!s.hasNextInt()) {
System.out.println("Некорректное значение, попробуйте еще раз: ");
s.next();
}
age = s.nextInt();
System.out.println("Устанавливается возраст...");
if (age < 0) {
System.out.println("Некорректное значение, введите еще раз: ");
}
if (age > 150) {
System.out.println("Слишком большое значение, введите еще раз: ");
}
} while (age < 0 || age > 150);
System.out.println("Вы установили возраст - " + this.age);
}
У вас строка:
age = s.nextInt();
Входит в цикл:
do {/*тело цикла*/} while (age < 0 || age > 150);
Такой цикл выполняется хотя-бы один раз, затем проверяется условие. Кстати условие: "(age < 0)" - это начиная с нуля. Возраст разве может быть равен нулю? В условии наверное нужно поставить: "(age <= 0)".
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Нужно записывать метаданные и большие файлы в удаленную MongoDBИзвестен адрес сервера с монгой
подскажите пожалуйста как передвинуть или удалить маркер в google map Android
Нужно продолжить линии графиков, если в некоторых сериях нет значений