Trong hướng dẫn này, chúng ta sẽ học cách sử dụng vòng lặp while và do while trong Java với sự trợ giúp của các ví dụ.
Trong lập trình máy tính, các vòng lặp được sử dụng để lặp lại một khối mã. Ví dụ, nếu bạn muốn hiển thị một tin nhắn 100 lần, thì bạn có thể sử dụng một vòng lặp. Nó chỉ là một ví dụ đơn giản; bạn có thể đạt được nhiều hơn nữa với các vòng lặp.
Trong hướng dẫn trước, bạn đã học về Java for loop. Ở đây, bạn sẽ tìm hiểu về while
và do… while
lặp lại.
Vòng lặp while trong Java
while
Vòng lặp Java được sử dụng để chạy một mã cụ thể cho đến khi một điều kiện nhất định được đáp ứng. Cú pháp của while
vòng lặp là:
while (testExpression) ( // body of loop )
Đây,
- Một
while
vòng lặp đánh giá textExpression bên trong dấu ngoặc đơn()
. - Nếu textExpression đánh giá là
true
, mã bên trongwhile
vòng lặp được thực thi. - Các textExpression được đánh giá lại.
- Quá trình này tiếp tục cho đến khi textExpression là
false
. - Khi textExpression đánh giá là
false
, vòng lặp sẽ dừng lại.
Để tìm hiểu thêm về các điều kiện, hãy truy cập các toán tử quan hệ và logic trong Java.
Lưu đồ của vòng lặp while
Sơ đồ vòng lặp while trong JavaVí dụ 1: Hiển thị các số từ 1 đến 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++; ) ) )
Đầu ra
1 2 3 4 5
Đây là cách chương trình này hoạt động.
Lặp lại | Biến đổi | Điều kiện: i <= n | Hoạt động |
---|---|---|---|
Ngày 1 | i = 1 n = 5 | true | 1 được in. tôi được tăng lên 2 . |
lần 2 | i = 2 n = 5 | true | 2 được in. tôi được tăng lên 3 . |
lần thứ 3 | i = 3 n = 5 | true | 3 được in. tôi được tăng lên 4 . |
lần thứ 4 | i = 4 n = 5 | true | 4 được in. tôi được tăng lên 5 . |
ngày 5 | i = 5 n = 5 | true | 5 được in. tôi được tăng lên 6 . |
Ngày 6 | i = 6 n = 5 | false | Vòng lặp đã kết thúc |
Ví dụ 2: Chỉ tính tổng các số dương
// 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(); ) )
Đầu ra
Nhập số 25 Nhập số 9 Nhập số 5 Nhập số -3 Tổng = 39
Trong chương trình trên, chúng ta đã sử dụng lớp Máy quét để lấy đầu vào từ người dùng. Ở đây, nextInt()
lấy đầu vào số nguyên từ người dùng.
Các while
vòng lặp tiếp tục cho đến khi người dùng nhập vào một số âm. Trong mỗi lần lặp, số do người dùng nhập sẽ được thêm vào sum
biến.
Khi người dùng nhập một số âm, vòng lặp kết thúc. Cuối cùng, tổng tổng được hiển thị.
Java do… vòng lặp while
Các do… while
vòng lặp tương tự như vòng lặp while. Tuy nhiên, phần thân của do… while
vòng lặp được thực thi một lần trước khi biểu thức kiểm tra được kiểm tra. Ví dụ,
do ( // body of loop ) while(textExpression)
Đây,
- Phần thân của vòng lặp được thực thi lúc đầu. Sau đó, textExpression được đánh giá.
- Nếu textExpression được đánh giá là
true
, phần thân của vòng lặp bên trongdo
câu lệnh sẽ được thực thi lại. - Các textExpression được đánh giá một lần nữa.
- Nếu textExpression được đánh giá là
true
, phần thân của vòng lặp bên trongdo
câu lệnh sẽ được thực thi lại. - Quá trình này tiếp tục cho đến khi textExpression đánh giá thành
false
. Sau đó, vòng lặp dừng lại.
Lưu đồ vòng lặp do… while
Lưu đồ của Java vòng lặp do whileHãy xem hoạt động của do… while
vòng lặp.
Ví dụ 3: Hiển thị các số từ 1 đến 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); ) )
Đầu ra
1 2 3 4 5
Đây là cách chương trình này hoạt động.
Lặp lại | Biến đổi | Điều kiện: i <= n | Hoạt động |
---|---|---|---|
i = 1 n = 5 | chưa được kiểm tra | 1 được in. tôi được tăng lên 2 . |
|
Ngày 1 | i = 2 n = 5 | true | 2 được in. tôi được tăng lên 3 . |
lần 2 | i = 3 n = 5 | true | 3 được in. tôi được tăng lên 4 . |
lần thứ 3 | i = 4 n = 5 | true | 4 được in. tôi được tăng lên 5 . |
lần thứ 4 | i = 5 n = 5 | true | 6 được in. tôi được tăng lên 6 . |
ngày 5 | i = 6 n = 5 | false | Vòng lặp đã kết thúc |
Ví dụ 4: Tổng các số dương
// 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(); ) )
Đầu ra 1
Nhập số 25 Nhập số 9 Nhập số 5 Nhập số -3 Tổng = 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
Các for
vòng lặp được sử dụng khi số lần lặp được biết đến. Ví dụ,
for (let i = 1; i <=5; ++i) ( // body of loop )
Và while
và do… while
vòng lặp thường được sử dụng khi số lần lặp là không xác định. Ví dụ,
while (condition) ( // body of loop )