Java while și do ... while Loop

În acest tutorial, vom învăța cum să folosim bucla while și do while în Java cu ajutorul exemplelor.

În programarea computerului, buclele sunt folosite pentru a repeta un bloc de cod. De exemplu, dacă doriți să afișați un mesaj de 100 de ori, atunci puteți utiliza o buclă. Este doar un exemplu simplu; puteți obține mult mai multe cu bucle.

În tutorialul anterior, ați aflat despre Java pentru buclă. Aici, veți afla despre whileși do… whilebucle.

Java while loop

whileBucla Java este utilizată pentru a rula un anumit cod până când se îndeplinește o anumită condiție. Sintaxa whilebuclei este:

 while (testExpression) ( // body of loop )

Aici,

  1. O whilebuclă evaluează textExpression din paranteză ().
  2. Dacă textExpression se evaluează true, codul din whilebuclă este executat.
  3. TextExpression este evaluat din nou.
  4. Acest proces continuă până când textExpression este false.
  5. Când textExpression se evaluează false, bucla se oprește.

Pentru a afla mai multe despre condiții, vizitați operatorii relaționali și logici Java.

Diagramă a buclei while

Diagrama fluxului Java while loop

Exemplul 1: Afișați numerele de la 1 la 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++; ) ) )

Ieșire

 1 2 3 4 5

Iată cum funcționează acest program.

Repetare Variabil Stare: i <= n Acțiune
Primul i = 1
n = 5
true 1 este tipărit.
i este mărit la 2 .
Al 2-lea i = 2
n = 5
true 2 este tipărit.
i este mărit la 3 .
A treia i = 3
n = 5
true 3 este tipărit.
i este mărit la 4 .
Al 4-lea i = 4
n = 5
true 4 este tipărit.
i este mărit la 5 .
Al 5-lea i = 5
n = 5
true 5 este tipărit.
i este mărit la 6 .
Al 6-lea i = 6
n = 5
false Bucla este terminată

Exemplul 2: Numai suma de numere pozitive

 // 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(); ) )

Ieșire

 Introduceți un număr 25 Introduceți un număr 9 Introduceți un număr 5 Introduceți un număr -3 Sumă = 39

În programul de mai sus, am folosit clasa Scanner pentru a primi informații de la utilizator. Aici, nextInt()preia intrarea de la utilizator.

whileBuclă continuă până când utilizatorul introduce un număr negativ. În timpul fiecărei iterații, numărul introdus de utilizator este adăugat sumvariabilei.

Când utilizatorul introduce un număr negativ, bucla se termină. În cele din urmă, este afișată suma totală.

Java face … while loop

do… whileBucla este similar cu buclă în timp. Cu toate acestea, corpul do… whilebuclei este executat o dată înainte de verificarea expresiei de test. De exemplu,

 do ( // body of loop ) while(textExpression)

Aici,

  1. Corpul buclei este executat la început. Apoi textExpression este evaluat.
  2. Dacă textExpression se evaluează true, corpul buclei din doinstrucțiune este executat din nou.
  3. TextExpression este evaluat încă o dată.
  4. Dacă textExpression se evaluează true, corpul buclei din doinstrucțiune este executat din nou.
  5. Acest proces continuă până când textExpression se evaluează la false. Apoi bucla se oprește.

Diagrama fluxului do … while loop

Diagrama fluxului Java face în buclă

Să vedem funcționarea do… whilebuclei.

Exemplul 3: Afișați numerele de la 1 la 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); ) )

Ieșire

 1 2 3 4 5

Iată cum funcționează acest program.

Repetare Variabil Stare: i <= n Acțiune
i = 1
n = 5
nu a verificat 1 este tipărit.
i este mărit la 2 .
Primul i = 2
n = 5
true 2 este tipărit.
i este mărit la 3 .
Al 2-lea i = 3
n = 5
true 3 este tipărit.
i este mărit la 4 .
A treia i = 4
n = 5
true 4 este tipărit.
i este mărit la 5 .
Al 4-lea i = 5
n = 5
true 6 este tipărit.
i este mărit la 6 .
Al 5-lea i = 6
n = 5
false Bucla este terminată

Exemplul 4: Suma numerelor pozitive

 // 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(); ) )

Ieșire 1

 Introduceți un număr 25 Introduceți un număr 9 Introduceți un număr 5 Introduceți un număr -3 Sumă = 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

forBucla este utilizat atunci când numărul de iterații este cunoscut. De exemplu,

 for (let i = 1; i <=5; ++i) ( // body of loop )

Și whileși do… whilebuclele sunt utilizate în general atunci când numărul de iterații este necunoscut. De exemplu,

 while (condition) ( // body of loop )

Articole interesante...