JavaRush/Курсы/Java Syntax Pro/Примеры использования цикла while

Примеры использования цикла while

Открыта

1. Подсчет суммы чисел с использованием цикла while

Давайте напишем программу, которая вводит числа с клавиатуры (пока пользователь вводит что-то похожее на числа) и выводит на экран их сумму. Вот как будет выглядеть код такой программы (приводим только код внутри метода main).

Код Пояснение
Scanner console = new Scanner(System.in);
int sum = 0;
while (console.hasNextInt())
{
   int x = console.nextInt();
   sum = sum + x;
}
System.out.println(sum);
Создаем объект Scanner для чтения данных с консоли.
В переменной sum будем хранить сумму чисел.
Пока в консоли вводят целые числа

считываем очередное число в переменную x.
Добавляем x к сумме чисел (переменная sum).

Выводим подсчитанную сумму на экран.

2. Максимум введенных чисел с использованием цикла while

Вторая программа тоже будет считывать числа с клавиатуры (пока пользователь вводит что-то похожее на числа), но на экран нужно будет вывести наибольшее из введенных чисел. Вот как будет выглядеть код такой программы (приводим только код внутри метода main).

Код Пояснение
Scanner console = new Scanner(System.in);
int max = 0;
while (console.hasNextInt())
{
   int x = console.nextInt();
   if (x > max)
     max = x;
}
System.out.println(max);
Создаем объект Scanner для чтения данных с консоли.
В переменной max будем хранить максимум чисел.
Пока в консоли вводят целые числа

считываем очередное число в переменную x.
Сравниваем x и max. Если x больше max,
обновляем максимум.

Выводим найденный максимум чисел на экран.

Тут есть интересный момент: если все введённые числа с клавиатуры будут отрицательными, программа выведет на экран число 0. Что, собственно говоря, неверно.

Поэтому стартовое значение max должно быть как можно меньше.

Вариант 1:

Можно присвоить ему -2000000000 (минус два миллиарда). Что уже довольно неплохо.

Вариант 2:

Присвоить самое маленькое значение типа int. Для него есть специальная константа: Integer.MIN_VALUE;

Вариант 3:

Еще лучше — инициализировать max первым введенным числом. Это лучший вариант. Но это можно сделать только в том случае, если по условию задачи пользователь должен ввести хотя бы одно число.


Комментарии (908)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
herewegoagain FullStack Developer
3 октября, 16:48
Уже есть опыт работы в разработке. Решил повторить всю элементарную базу перед тем, как с Java EE на Spring пересяду. Думал, за день 10 лвлов пробегу, как родные. Новички, не расстраивайтесь, что быстро не решили 3-ю задачу... Я тоже её с первой попытки не решил :D
Euraks Backend Developer
19 сентября, 11:52
в задаче Минимум из введенных чисел условие
Если введен только один нечисловой символ,
то вывести на экран максимальное значение числа типа int.
означает что если не ввели ни 1 числа, то вывести нужно максимальный int их возможных
No “Nik0la” Name
Уровень 5
3 июля, 18:50
Прочитал комментарии. Пишут последняя "сложная". Ну не знаю)) Главная логика в том, что вам надо объявить две переменных min1, min2 и когда значение с консоли меньше min1, вы присваиваете min2 прошлое значение min1, а в min1 записываете x. (min2 = min1; min1 = x;) Удачи, ребят
Anonymous #6463865
Уровень 11
25 апреля, 12:30
// Задача 4-5-2: Cчитывать целые числа с клавиатуры до тех пор, пока не будет введено что-то
// другое: например, строка или символ. Выведи на экран максимальное четное число из введенных.
// Если введено несколько таких чисел, необходимо вывести любое из них.
Scanner console = new Scanner(System.in);
int max = Integer.MIN_VALUE;
while (console.hasNextInt()) {
    int x = console.nextInt();
    max = (x % 2 == 0) && (x > max) ? x : max;
}
System.out.println(max);
Anonymous #6463865
Уровень 11
25 апреля, 12:28
// Задача 4-5-1: Надо считывать целые числа с клавиатуры до тех пор, пока не будет введено что-то
// другое: например, строка или символ. Выведи на экран минимальное число из введенных. Если
// введено несколько таких чисел, необходимо вывести любое из них.
Scanner console = new Scanner(System.in);
int min = Integer.MAX_VALUE;
while (console.hasNextInt()) {
    int x = console.nextInt();
    min = min < x ? min : x;
}
System.out.println(min);
Anna Klushkina
Уровень 66
3 января, 07:19
Первая hard задача!! 👀
Strangelove Strangelove
Уровень 17
3 января, 00:56
Решил задачу с 20 попытки)) Подсказка - пишите System.out.println(переменная) в самом цикле, чтобы понять, что у вас пошло не так.
Agurez Gaming
Уровень 7
12 ноября 2025, 20:08
Отличный байт для покупки ментора, я про задачу 3
R
9 октября 2025, 09:52
Долго возвращался в темп, теперь идет тяжелее чем в момент, когда ежедневно учил, лучше не останавливайтесь не на один день только если не на перерыв конечно!
AbashkinVЗаместитель директора по в ГБОУ школа №703
29 сентября 2025, 10:21
Для себя вывел такую формулу: 1. Прочитать задачу 2. Понять что хотят 3. Прочитать требования 4. Окончательно понять что хотят 5. С этим пониманием на пару писать код 6. Профит Пока работает безотказно, ошибки допускаю по невнимательности или из-за того, что не заучил команды (например, вместо hasNextInt написал hasNewInt T_T) Успехов, братья!