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

Пример 1: отображение чисел от 1 до 5
// Program to display numbers from 1 to 5 class Main ( public static void main(String() args) ( // declare variables int i = 1, n = 5; // while loop from 1 to 5 while(i <= n) ( System.out.println(i); i++; ) ) )
Вывод
1 2 3 4 5
Вот как работает эта программа.
Итерация | Переменная | Условие: i <= n | Действие |
---|---|---|---|
1-й | i = 1 n = 5 | true | 1 напечатан. i увеличивается до 2 . |
2-й | i = 2 n = 5 | true | 2 напечатано. i увеличивается до 3 . |
3-й | i = 3 n = 5 | true | 3 напечатано. i увеличивается до 4 . |
4-й | i = 4 n = 5 | true | 4 напечатано. i увеличивается до 5 . |
5-й | i = 5 n = 5 | true | 5 напечатано. i увеличивается до 6 . |
Шестой | i = 6 n = 5 | false | Цикл завершен |
Пример 2: Только сумма положительных чисел
// Java program to find the sum of positive numbers import java.util.Scanner; class Main ( public static void main(String() args) ( int sum = 0; // create an object of Scanner class Scanner input = new Scanner(System.in); // take integer input from the user System.out.println("Enter a number"); int number = input.nextInt(); // while loop continues // until entered number is positive while (number>= 0) ( // add only positive numbers sum += number; System.out.println("Enter a number"); number = input.nextInt(); ) System.out.println("Sum = " + sum); input.close(); ) )
Вывод
Введите число 25 Введите число 9 Введите число 5 Введите число -3 Сумма = 39
В приведенной выше программе мы использовали класс Scanner для ввода данных от пользователя. Здесь nextInt()
принимает целочисленный ввод от пользователя.
while
Цикл продолжается до тех пор , пока пользователь не введет отрицательное число. Во время каждой итерации к sum
переменной добавляется число, введенное пользователем .
Когда пользователь вводит отрицательное число, цикл завершается. Наконец, отображается общая сумма.
Java do… цикл while
do… while
Цикл аналогичен цикла. Однако тело do… while
цикла выполняется один раз перед проверкой тестового выражения. Например,
do ( // body of loop ) while(textExpression)
Вот,
- Сначала выполняется тело цикла. Затем вычисляется выражение textExpression .
- Если textExpression имеет значение
true
, тело цикла внутриdo
заявление выполняется снова. - TextExpression оценивается еще раз.
- Если textExpression имеет значение
true
, тело цикла внутриdo
заявление выполняется снова. - Этот процесс продолжается до тех пор , textExpression не имеет значение
false
. Затем цикл останавливается.
Блок-схема цикла do… while

Посмотрим, как работает do… while
цикл.
Пример 3: отображение чисел от 1 до 5
// Java Program to display numbers from 1 to 5 import java.util.Scanner; // Program to find the sum of natural numbers from 1 to 100. class Main ( public static void main(String() args) ( int i = 1, n = 5; // do… while loop from 1 to 5 do ( System.out.println(i); i++; ) while(i <= n); ) )
Вывод
1 2 3 4 5
Вот как работает эта программа.
Итерация | Переменная | Условие: i <= n | Действие |
---|---|---|---|
i = 1 n = 5 | не проверено | 1 напечатан. i увеличивается до 2 . |
|
1-й | i = 2 n = 5 | true | 2 напечатано. i увеличивается до 3 . |
2-й | i = 3 n = 5 | true | 3 напечатано. i увеличивается до 4 . |
3-й | i = 4 n = 5 | true | 4 напечатано. i увеличивается до 5 . |
4-й | i = 5 n = 5 | true | 6 напечатано. i увеличивается до 6 . |
5-й | i = 6 n = 5 | false | Цикл завершен |
Пример 4: сумма положительных чисел
// Java program to find the sum of positive numbers import java.util.Scanner; class Main ( public static void main(String() args) ( int sum = 0; int number = 0; // create an object of Scanner class Scanner input = new Scanner(System.in); // do… while loop continues // until entered number is positive do ( // add only positive numbers sum += number; System.out.println("Enter a number"); number = input.nextInt(); ) while(number>= 0); System.out.println("Sum = " + sum); input.close(); ) )
Выход 1
Введите число 25 Введите число 9 Введите число 5 Введите число -3 Сумма = 39
Here, the user enters a positive number, that number is added to the sum variable. And this process continues until the number is negative. When the number is negative, the loop terminates and displays the sum without adding the negative number.
Output 2
Enter a number -8 Sum is 0
Here, the user enters a negative number. The test condition will be false
but the code inside of the loop executes once.
Infinite while loop
If the condition of a loop is always true
, the loop runs for infinite times (until the memory is full). For example,
// infinite while loop while(true)( // body of loop )
Here is an example of an infinite do… while
loop.
// infinite do… while loop int count = 1; do ( // body of loop ) while(count == 1)
In the above programs, the textExpression is always true
. Hence, the loop body will run for infinite times.
for and while loops
for
Цикл используется , когда число итераций известно. Например,
for (let i = 1; i <=5; ++i) ( // body of loop )
Циклы And while
и do… while
обычно используются, когда количество итераций неизвестно. Например,
while (condition) ( // body of loop )