Java while и do ... while Loop

В этом руководстве мы узнаем, как использовать цикл while и do while в Java с помощью примеров.

В компьютерном программировании циклы используются для повторения блока кода. Например, если вы хотите показать сообщение 100 раз, вы можете использовать цикл. Это просто простой пример; вы можете добиться гораздо большего с помощью петель.

В предыдущем руководстве вы узнали о цикле for в Java. Здесь вы собираетесь узнать whileи do… whileпетли.

Java цикл while

whileЦикл Java используется для запуска определенного кода до тех пор, пока не будет выполнено определенное условие. Синтаксис whileцикла:

 while (testExpression) ( // body of loop )

Вот,

  1. whileПетля оценивает textExpression внутри скобок ().
  2. Если textExpression имеет значение true, код внутри whileцикла выполняется.
  3. TextExpression оценивается снова.
  4. Этот процесс продолжается до тех пор, пока textExpression не станет false.
  5. Когда textExpression принимает значение false, цикл останавливается.

Чтобы узнать больше об условиях, посетите реляционные и логические операторы Java.

Блок-схема цикла while

Блок-схема цикла 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)

Вот,

  1. Сначала выполняется тело цикла. Затем вычисляется выражение textExpression .
  2. Если textExpression имеет значение true, тело цикла внутри doзаявление выполняется снова.
  3. TextExpression оценивается еще раз.
  4. Если textExpression имеет значение true, тело цикла внутри doзаявление выполняется снова.
  5. Этот процесс продолжается до тех пор , textExpression не имеет значение false. Затем цикл останавливается.

Блок-схема цикла do… while

Блок-схема цикла Java 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 )

Интересные статьи...