Освоение циклов while и do-while в Java: пошаговое руководство
Циклы while и do...while в Java
В этом уроке мы научимся использовать циклы while и do-while в Java с помощью примеров.
В программировании циклы используются для повторения блока кода. Например, если нужно показать сообщение 100 раз, можно использовать цикл. Это простой пример; с циклами можно сделать гораздо больше.
В предыдущем уроке вы изучили цикл for. Здесь вы узнаете о циклах while и do...while.
Цикл while в Java
Цикл while в Java выполняет определенный код, пока выполняется условие. Синтаксис:
while (testExpression) {
// тело цикла
}
Здесь:
- Цикл
whileвычисляет testExpression в скобках(). - Если testExpression —
true, выполняется код внутри цикла. - testExpression вычисляется снова.
- Процесс продолжается, пока testExpression не станет
false. - Когда testExpression —
false, цикл останавливается.
Подробнее об условиях: Операторы сравнения и логические операторы в Java.
Блок-схема цикла while

Пример 1: Вывод чисел от 1 до 5
// Программа для вывода чисел от 1 до 5
class Main {
public static void main(String[] args) {
// объявляем переменные
int i = 1, n = 5;
// while цикл от 1 до 5
while(i <= n) {
System.out.println(i);
i++;
}
}
}
Вывод
1 2 3 4 5
Как работает эта программа:
| Итерация | Переменная | Условие: i <= n | Действие |
|---|---|---|---|
| 1-я | i = 1n = 5 | true | 1 выведено. i увеличено до 2. |
| 2-я | i = 2n = 5 | true | 2 выведено. i увеличено до 3. |
| 3-я | i = 3n = 5 | true | 3 выведено. i увеличено до 4. |
| 4-я | i = 4n = 5 | true | 4 выведено. i увеличено до 5. |
| 5-я | i = 5n = 5 | true | 5 выведено. i увеличено до 6. |
| 6-я | i = 6n = 5 | false | Цикл завершен |
Пример 2: Сумма только положительных чисел
// Java программа для нахождения суммы положительных чисел
import java.util.Scanner;
class Main {
public static void main(String[] args) {
int sum = 0;
// создаем объект Scanner
Scanner input = new Scanner(System.in);
// получаем целое число от пользователя
System.out.println("Введите число");
int number = input.nextInt();
// while цикл продолжается
// пока введенное число положительно
while (number >= 0) {
// добавляем только положительные числа
sum += number;
System.out.println("Введите число");
number = input.nextInt();
}
System.out.println("Сумма = " + sum);
input.close();
}
}
Вывод
Введите число 25 Введите число 9 Введите число 5 Введите число -3 Сумма = 39
В программе используется класс Scanner для ввода. Метод nextInt() считывает целое число.
Цикл while продолжается, пока пользователь вводит положительное число. На каждой итерации введенное число добавляется к переменной sum.
Когда пользователь вводит отрицательное число, цикл завершается. Наконец, выводится общая сумма.
Цикл do...while в Java
Цикл do...while похож на while. Однако тело do...while выполняется один раз до проверки условия. Например,
do {
// тело цикла
} while(textExpression);
Здесь:
- Сначала выполняется тело цикла. Затем вычисляется textExpression.
- Если textExpression —
true, тело цикла выполняется снова. - textExpression вычисляется снова.
- Если textExpression —
true, тело цикла выполняется снова. - Процесс продолжается, пока textExpression не станет
false. Затем цикл останавливается.
Блок-схема do...while

Пример 3: Вывод чисел от 1 до 5
// Java программа для вывода чисел от 1 до 5
import java.util.Scanner;
// Программа для нахождения суммы натуральных чисел от 1 до 100.
class Main {
public static void main(String[] args) {
int i = 1, n = 5;
// do...while цикл от 1 до 5
do {
System.out.println(i);
i++;
} while(i <= n);
}
}
Вывод
1 2 3 4 5
Как работает эта программа:
| Итерация | Переменная | Условие: i <= n | Действие |
|---|---|---|---|
i = 1n = 5 | не проверяется | 1 выведено. i увеличено до 2. | |
| 1-я | i = 2n = 5 | true | 2 выведено. i увеличено до 3. |
| 2-я | i = 3n = 5 | true | 3 выведено. i увеличено до 4. |
| 3-я | i = 4n = 5 | true | 4 выведено. i увеличено до 5. |
| 4-я | i = 5n = 5 | true | 5 выведено. i увеличено до 6. |
| 5-я | i = 6n = 5 | false | Цикл завершен |
Пример 4: Сумма положительных чисел
// Java программа для нахождения суммы положительных чисел
import java.util.Scanner;
class Main {
public static void main(String[] args) {
int sum = 0;
int number = 0;
// создаем объект Scanner
Scanner input = new Scanner(System.in);
// do...while цикл продолжается
// пока введенное число положительно
do {
// добавляем только положительные числа
sum += number;
System.out.println("Введите число");
number = input.nextInt();
} while(number >= 0);
System.out.println("Сумма = " + sum);
input.close();
}
}
Вывод 1
Введите число 25 Введите число 9 Введите число 5 Введите число -3 Сумма = 39
Пользователь вводит положительное число, оно добавляется к sum. Процесс продолжается до отрицательного числа. Когда число отрицательное, цикл завершается и выводится сумма без добавления отрицательного числа.
Вывод 2
Введите число -8 Сумма = 0
Пользователь вводит отрицательное число. Условие false, но тело цикла выполняется один раз.
Бесконечный цикл while
Если условие цикла всегда true, цикл выполняется бесконечно (пока не закончится память). Например,
// бесконечный while цикл
while(true){
// тело цикла
}
Пример бесконечного do...while:
// бесконечный do...while цикл
int count = 1;
do {
// тело цикла
} while(count == 1)
В этих программах textExpression всегда true. Поэтому тело цикла выполняется бесконечно.
Циклы for и while
Цикл for используется, когда число итераций известно. Например,
for (int i = 1; i <=5; ++i) {
// тело цикла
}
А циклы while и do...while обычно применяются, когда число итераций неизвестно. Например,
while (condition) {
// тело цикла
}
java
- Переменные и литералы в Java: подробное руководство
- Понимание выражений, операторов и блоков в Java
- Освоение улучшенного цикла for в Java: синтаксис, примеры и лучшие практики
- Классы и объекты в Java: практическое руководство
- Абстрактные классы и методы в Java: полное руководство
- Вложенные и внутренние классы в Java: типы, примеры и лучшие практики
- Java throw vs throws: мастерство обработки исключений с практическими примерами
- Освоение Java Autoboxing и Unboxing: практические примеры и лучшие практики
- Циклы while и do-while: наглядное сравнение с практическими примерами
- Java-проверка чисел-палиндромов: алгоритмы с while и for циклами