Î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… while
bucle.
Java while loop
while
Bucla Java este utilizată pentru a rula un anumit cod până când se îndeplinește o anumită condiție. Sintaxa while
buclei este:
while (testExpression) ( // body of loop )
Aici,
- O
while
buclă evaluează textExpression din paranteză()
. - Dacă textExpression se evaluează
true
, codul dinwhile
buclă este executat. - TextExpression este evaluat din nou.
- Acest proces continuă până când textExpression este
false
. - 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

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.
while
Buclă 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 sum
variabilei.
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… while
Bucla este similar cu buclă în timp. Cu toate acestea, corpul do… while
buclei este executat o dată înainte de verificarea expresiei de test. De exemplu,
do ( // body of loop ) while(textExpression)
Aici,
- Corpul buclei este executat la început. Apoi textExpression este evaluat.
- Dacă textExpression se evaluează
true
, corpul buclei dindo
instrucțiune este executat din nou. - TextExpression este evaluat încă o dată.
- Dacă textExpression se evaluează
true
, corpul buclei dindo
instrucțiune este executat din nou. - Acest proces continuă până când textExpression se evaluează la
false
. Apoi bucla se oprește.
Diagrama fluxului do … while loop

Să vedem funcționarea do… while
buclei.
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
for
Bucla 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… while
buclele sunt utilizate în general atunci când numărul de iterații este necunoscut. De exemplu,
while (condition) ( // body of loop )