Условия и циклы ·
‹ Previous Next ›
⏱ 5 min read Modified: 2026-07-13

Условные операторы и циклы в Java (if, switch, for, while). Practical Tasks

Ниже — четырнадцать практических задач по Java на управляющие конструкции: условные операторы if, if-else, if-else-if, оператор switch, циклы while, do-while, for и for-each, а также операторы перехода break, continue, return и метод System.exit(). Задания идут от простой проверки чётности до факториала, поиска элемента в массиве и корректного завершения программы. К большинству задач есть готовое решение на Patreon, а к части — ещё и видеоразбор. Перед выполнением рекомендуем изучить уроки об операторе if, операторе switch, циклах, операторах break и continue, операторе return и методе System.exit().

Чётное или нечётное число

  1. Передать на вход программы число в качестве аргумента.
  2. Если оно нечётное, распечатать его.
  3. Используем оператор if.
  4. Используйте метод Integer.parseInt() для преобразования из String в int.

Решение на Patreon →

Число от 0 до 10

  1. С помощью класса Scanner ввести целое число.
  2. Если это число от 0 (включительно) до 10 (не включая 10), вывести на консоль сообщение “Положительное число меньше 10 или ноль”, иначе вывести сообщение “Положительное число больше 10 или отрицательное”.
  3. Используем оператор if-else.

Частая ошибка

Внимательно определите, попадают ли граничные значения (0 и 10) в диапазон. Ошибка на единицу в условии вида n >= 0 && n < 10 — одна из самых распространённых у начинающих: перепутав < и <=, вы отнесёте число 10 не к той ветке.

Решение на Patreon →

Дни недели через if-else-if

  1. Передать на вход программы число от 1 до 7 в качестве аргумента.
  2. Если число равно 1, выводим на консоль “Понедельник”, 2 – “Вторник” и так далее. Если 6 или 7 – “Выходной”.
  3. Используем конструкцию if-else-if.

Смотрите решение задачи в видео.

Решение на Patreon →

Дни недели с оператором switch

Переписать задание “Дни недели через if-else-if”, используя оператор switch. Обратите внимание на случай “6 или 7”: в switch его удобно записать двумя метками case, ведущими к одному действию.

Смотрите решение задачи в видео.

Решение на Patreon →

Десять строк циклом while

Распечатать 10 строк: “Task1”, “Task2”, …, “Task10”. Используем цикл while.

Смотрите решение задачи в видео.

Решение на Patreon →

Числа, кратные 5, циклом do-while

Распечатать все числа от 1 до 100, которые делятся на 5 без остатка. Используем цикл do-while.

Обратите внимание

Тело цикла do-while выполняется минимум один раз — условие проверяется только после первой итерации. Для этой задачи разница с while незаметна, но помните о ней: если бы стартовое число уже превышало 100, do-while всё равно выполнил бы одну проверку числа.

Смотрите решение задачи в видео.

Решение на Patreon →

Пять символов циклом for

Распечатать 5 символов в одну строку начиная с ‘h’. Используем цикл for.

Подсказка

Счётчиком цикла for может быть не только int, но и char: for (char c = 'h'; c < 'h' + 5; c++). Символы в Java — целочисленный тип, поэтому к ним применимы арифметика и инкремент.

Смотрите решение задачи в видео.

Решение на Patreon →

Гирлянда, часть 2

Переписать гирлянду (Гирлянда, часть 1), добавив следующий функционал:

  1. С помощью класса Scanner введите число от 1 до 4.
  2. Если введено число 1 – выполните метод мигания, 2 – проверку первой лампочки, 3 – метод бегущего огня, 4 – вывод состояния гирлянды на консоль.
  3. Для выбора режима используйте оператор switch.
  4. Измените метод мигания: метод должен мигнуть гирляндой 10 раз. Используем оператор for.
  5. Измените метод бегущего огня: метод должен выполнить операцию 10 раз. Используем оператор for.

Решение на Patreon →

Факториал циклом for

Реализовать подсчёт факториала, используя цикл for. Пример вычисления факториала:

n! = 1*2*...*n;
0! = 1;
5! = 1*2*3*4*5;

Число n задаётся случайным образом — используйте (int) (Math.random() * 6). Оно должно быть в диапазоне от 0 до 5.

Решение на Patreon →

Проверь свой код

При написании программ обращайте внимание на рекомендации по оформлению кода.

Сумма массива циклом for-each

  1. Создайте массив int[] из нескольких чисел, например {2, 4, 6, 8, 10}.
  2. Посчитайте сумму всех его элементов.
  3. Используем цикл for-each.
  4. Выведите результат на консоль.
  1. Создайте массив int[] из нескольких чисел и переменную target — число для поиска.
  2. Переберите массив циклом for.
  3. Как только текущий элемент равен target, выведите его индекс и немедленно прекратите цикл оператором break.
  4. Если после цикла элемент не найден, выведите “Не найдено”.

Нечётные числа от 1 до 20 с оператором continue

  1. Организуйте цикл for от 1 до 20 включительно.
  2. Если очередное число чётное, пропустите итерацию оператором continue.
  3. Остальные (нечётные) числа выведите на консоль.

Проверка числа на простоту с ранним return

  1. Напишите метод public static boolean isPrime(int n).
  2. Переберите возможные делители от 2 до n − 1.
  3. Как только нашёлся делитель, немедленно верните false оператором return, не дожидаясь конца цикла.
  4. Если ни один делитель не найден, верните true.
  5. Вызовите метод для нескольких чисел (например, 7, 15, 23) и выведите результат.

Аварийное завершение программы методом System.exit()

  1. С помощью класса Scanner считайте с консоли целое число.
  2. Если число отрицательное, выведите сообщение “Ошибка: число не должно быть отрицательным” и немедленно завершите программу, вызвав System.exit(1).
  3. Если число неотрицательное, выведите его квадрат на консоль.

Часто задаваемые вопросы

Чем цикл while отличается от do-while в Java?

Цикл while проверяет условие до входа в тело: если оно ложно сразу, тело не выполнится ни разу. Цикл do-while проверяет условие после итерации, поэтому его тело гарантированно выполняется хотя бы один раз. do-while удобен для меню и повторного запроса ввода у пользователя.

Когда использовать switch вместо цепочки if-else-if?

switch подходит, когда одна переменная сравнивается с набором конкретных значений (номер дня недели, пункт меню): такой код читается легче и меньше дублирует имя переменной. Цепочка if-else-if нужна, когда условия разнородные — диапазоны, сравнения нескольких переменных, логические выражения.

Что будет, если забыть break в switch?

Выполнение «провалится» в следующий case (fall-through): после совпавшей метки выполняются все последующие ветки до ближайшего break или конца блока. Иногда это используют намеренно — например, чтобы значения 6 и 7 вели к одному действию «Выходной», — но чаще пропущенный break оказывается незаметной ошибкой.

Как получить случайное целое число от 0 до 5 в Java?

Выражением (int) (Math.random() * 6): метод Math.random() возвращает double от 0 (включительно) до 1 (не включая), умножение на 6 даёт диапазон от 0 до 5,999…, а приведение к int отбрасывает дробную часть. Множитель равен 6, а не 5, иначе число 5 никогда не выпадет. Альтернатива — new Random().nextInt(6).

Почему при вычислении факториала может получиться неверный результат?

Факториал растёт очень быстро: уже 13! не помещается в int, а 21! — в long. Переполнение в Java происходит без ошибки — результат просто становится неверным (может оказаться даже отрицательным). Для n до 5, как в задаче, достаточно int; для больших n используйте long или BigInteger.

Comments

Please log in or register to have a possibility to add comment.