Цикл while выполняет блок кода, пока условие истинно. Он подходит, когда заранее неизвестно число повторений: чтение данных, поиск, накопление результата. Синтаксис: while (условие) { ... }. Важно следить за изменением переменных внутри цикла, иначе легко получить бесконечный цикл. В этом практическом тренажёре Java онлайн будут задания: корректная структура while, счётчик и инкремент, простые проверки, предсказание вывода. Это помогает понять, как работает код, и натренировать ответы на задачи.
- Пример:
int i=0; while(i<3){ System.out.println(i); i++; }
- Модуль 1: Первая программа и структура
- Модуль 2: Переменные и типы данных
- Объявление и инициализация переменных.
- Примитивы: целые числа (int, long, byte, short).
- Примитивы: дробные числа (double, float).
- Примитивы: логический тип (boolean).
- Примитивы: символьный тип (char).
- String — основы работы со строками.
- Приведение типов (Casting): расширение и сужение.
- Область видимости переменных (Scope).
- Модуль 3: Операторы
- Модуль 4: Управляющие конструкции
- Модуль 5: Массивы и Строки (Advanced)
- Создание и заполнение массива.
- Доступ к элементам по индексу.
- Свойство length и перебор массива.
- Цикл for-each для массивов.
- Многомерные массивы.
- Методы String: length, charAt, isEmpty.
- Манипуляции: substring, concat, replace.
- Сравнение строк: equals vs ==.
- Разделение строк (split) и trim.
- StringBuilder (изменяемые строки).
- Модуль 6: Методы
- Модуль 7: Классы и Объекты (ООП Часть 1)
- Модуль 8: Капсуляция и Модификаторы
- Модуль 9: Наследование и Полиморфизм (ООП Часть 2)
- Модуль 10: Обработка исключений
- Модуль 11: Коллекции и Дженерики
- Модуль 12: Функциональный стиль (Java 8+)
- Модуль 13: Полезные стандарты
1. Скелет цикла while
Перед вами фрагмент кода на Java, который должен вывести числа от 1 до 3. Сейчас в нём отсутствуют важные элементы синтаксиса. Ваша задача — восстановить структуру цикла: впишите ключевое слово для цикла с предусловием, открывающую фигурную скобку для начала блока кода и операцию увеличения счётчика (инкремент), чтобы программа работала корректно и не ушла в бесконечный цикл.
int count = 1;
// Объявление цикла
input1S (count <= 3) input2S
System.out.println(count);
input3S; // Увеличьте count на 1
}2. Условие и обновление переменной
В этом задании нужно восстановить фрагмент Java-кода, который с помощью цикла while подсчитывает сумму целых чисел от 1 до заданного верхнего предела включительно. В коде пропущены части, отвечающие за стартовое значение счётчика, сравнение в условии цикла и обновление переменной внутри цикла. Заполните пропуски так, чтобы программа компилировалась, корректно завершалась и выводила итоговую сумму для указанного предела.
public class SumWhile {
public static void main(String[] args) {
int limit = 5;
int i = input1S; // начинаем суммирование с 1
int sum = 0;
while (i input2S limit) {
sum += i;
input3S;
}
System.out.println(sum);
}
}3. Исправить бесконечный цикл
В этом фрагменте Java-кода программа должна посчитать сумму чисел от 1 до 5 с помощью цикла while и затем вывести результат. Однако в текущем варианте допущена логическая ошибка, из-за которой цикл становится бесконечным и программа не завершится. Найдите строку, где неверно обновляется переменная цикла, и исправьте её так, чтобы алгоритм остался тем же, но цикл гарантированно завершался.
public class InfiniteLoopFix { public static void main(String[] args) { int i = 1; int sum = 0; while (i <= 5) { sum += i; i--; } System.out.println(sum); }}4. Собрать код: обратный отсчёт
Из перемешанных строк соберите корректную Java-программу с циклом while, которая выполняет обратный отсчёт от 5 до 1 и выводит каждое значение счётчика в консоль на новой строке. Одна из строк лишняя: если её включить, логика обратного отсчёта будет нарушена. Соберите единственно правильную последовательность без переписывания строк.
public class Countdown { public static void main(String[] args) { int i = 5; while (i > 0) { System.out.println(i); i--; while (i < 0) { } }}5. Предсказать вывод цикла
Проанализируйте фрагмент Java-кода с циклом while и выберите вариант, который точно соответствует выводу программы в консоль. Обратите внимание на начальное значение счётчика, на то, когда происходит вывод, и на то, как изменяется переменная внутри цикла — это часто влияет на наличие «лишней» итерации или пропуск первого значения.
public class PredictWhileOutput {
public static void main(String[] args) {
int i = 2;
while (i <= 4) {
System.out.println(i);
i++;
}
}
}6. Итоговое значение переменной после while
Рассмотрите фрагмент Java-кода с циклом while. Внутри цикла увеличивается счётчик и накапливается сумма, а после завершения цикла выводится одно итоговое значение переменной. Введите в поле ответа число, которое будет выведено программой в конце работы (нужно одно значение, без дополнительных символов).
public class FinalValueWhile {
public static void main(String[] args) {
int i = 0;
int sum = 0;
while (i < 3) {
i++;
sum += i;
}
System.out.println(sum);
}
}7. Найти части цикла while
Внимательно посмотрите на фрагмент кода Java с одним циклом while. Выделите кликом все части, которые относятся именно к управлению этим циклом: (1) строку инициализации счётчика до цикла, (2) условие в заголовке while, (3) выражение изменения счётчика внутри тела цикла. Не выделяйте другие сравнения и изменения переменных, которые не управляют выполнением данного while.
public class WhileParts {
public static void main(String[] args) {
{{int i = 1;~|~t1}}
int sum = 0;
int limit = 4;
boolean check = (i == limit);
while ({{i <= limit~|~t2}}) {
sum += i;
{{i++;~|~t3}}
}
if ({{sum > 0~|~t4}}) {
sum--;
}
{{limit++;~|~t5}}
System.out.println(sum);
}
}
8. Порядок проверки while при отладке
Перед вами перемешанные короткие шаги, описывающие, как выполняется цикл while при пошаговой отладке. Расставьте строки в правильном порядке сверху вниз, начиная с момента, когда выполнение подходит к циклу. Ориентируйтесь на то, что while сначала проверяет условие и только потом выполняет тело, а затем снова возвращается к проверке.