Vòng lặp được sử dụng trong lập trình để lặp lại một khối code cụ thể. Trong bài viết này, bạn sẽ học cách tạo vòng lặp while và do… while trong lập trình Java.
Vòng lặp được sử dụng trong lập trình để lặp lại một khối code cụ thể cho đến khi một điều kiện nhất định được đáp ứng (hay nói cách khác, biểu thức kiểm tra cho kết quả là false).
Vòng lặp làm cho máy tính trở thành những máy móc thú vị. Hãy tưởng tượng bạn cần in một câu nào đó 50 lần trên màn hình của bạn. Bạn có thể làm điều đó bằng cách sử dụng câu lệnh in 50 lần (không sử dụng các vòng lặp). Vậy, nếu bạn cần in một câu nào đó một triệu lần thì sao? Bạn sẽ cần sử dụng các vòng lặp.
Đó chỉ là một ví dụ đơn giản. Bạn sẽ học cách sử dụng vòng lặp while và do..while để viết những chương trình hay trong bài viết này.
Nội dung chính
1. Vòng lặp while trong Java
Cú pháp của vòng lặp while là:
while (testExpression) {
// codes inside the body of while loop
}
2. Vòng lặp while hoạt động như thế nào?
Biểu thức kiểm tra bên trong dấu ngoặc đơn là biểu thức boolean.
Nếu biểu thức kiểm tra cho kết quả là true thì các câu lệnh bên trong vòng lặp while được thực hiện, sau đó, biểu thức kiểm tra được đánh giá lại.
Quá trình này diễn ra cho đến khi biểu thức kiểm tra trả kết quả là false.
Nếu biểu thức kiểm tra được cho kết quả là false thì vòng lặp while bị chấm dứt.
3. Sơ đồ khối của vòng lặp while
4. Ví dụ 1: Vòng lặp while
/**
* Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
*
* @author cafedevn
* Contact: cafedevn@gmail.com
* Fanpage: https://www.facebook.com/cafedevn
* Instagram: https://instagram.com/cafedevn
* Twitter: https://twitter.com/CafedeVn
* Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
*/
// Program to print line 10 times
class Loop {
public static void main(String[] args) {
int i = 1;
while (i <= 10) {
System.out.println("Line " + i);
++i;
}
}
}
Khi bạn chạy chương trình, kết quả sẽ là:
Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
Line 10
Hãy lưu ý về câu lệnh ++i; bên trong vòng lặp while. Sau 10 lần lặp, biến i sẽ có giá trị là 11. Sau đó, biểu thức kiểm tra i <= 10 sẽ trả về kết quả là false và do đó, vòng lặp while kết thúc.
5. Ví dụ 2: Vòng lặp while trong Java
/**
* Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
*
* @author cafedevn
* Contact: cafedevn@gmail.com
* Fanpage: https://www.facebook.com/cafedevn
* Instagram: https://instagram.com/cafedevn
* Twitter: https://twitter.com/CafedeVn
* Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
*/
// Program to find the sum of natural numbers from 1 to 100.
class AssignmentOperator {
public static void main(String[] args) {
int sum = 0, i = 100;
while (i != 0) {
sum += i; // sum = sum + i;
--i;
}
System.out.println("Sum = " + sum);
}
}
Khi bạn chạy chương trình, kết quả sẽ là:
Sum = 5050
Ở đây, biến sum được khởi tạo là 0 và i được khởi tạo là 100. Trong mỗi lần lặp của vòng lặp while, biến sum sẽ được gán là sum + i và giá trị của i giảm đi 1 cho đến khi i bằng 0. Một cách trực quan hơn,
1st iteration: i = 100, sum = 0+100 = 100, and --i = 99
2nd iteration: i = 99, sum = 100+99 = 199, and --i = 98
3rd iteration: i = 98, sum = 199+98 = 297, and --i = 97
... .. ...
... .. ...
99th iteration: i = 2, sum = 5047+2 = 5049, and --i = 1
100th iteration: i = 1, sum = 5049+1 = 5050, and --i = 0
Để tìm hiểu thêm về biểu thức kiểm tra và cách đánh giá biểu thức kiểm tra, hãy truy cập các toán tử quan hệ và logic.
6. Vòng lặp do…while trong Java
Các vòng lặp do…while tương tự như vòng lặp while nhưng có một sự khác biệt ta cần chú ý. Câu lệnh trong phần thân của vòng lặp do…while được thực hiện trước mỗi lần biểu thức kiểm tra được đánh giá.
Cú pháp của vòng lặp do..while là:
do {
// codes inside body of do while loop
} while (testExpression);
7. Vòng lặp do…while hoạt động như thế nào?
Phần thân của vòng lặp do…while được thực hiện (trước khi đánh giá biểu thức kiểm tra). Sau đó, biểu thức kiểm tra mới được đánh giá.
Nếu biểu thức kiểm tra trả kết quả là true, code bên trong phần thân của vòng lặp được thực hiện và biểu thức kiểm tra được đánh giá lại. Quá trình này diễn ra cho đến khi biểu thức kiểm tra trả kết quả là false.
Khi biểu thức kiểm tra là false, vòng lặp do..while chấm dứt.
8. Sơ đồ khối của vòng lặp do…while
9. Ví dụ 3: Vòng lặp do…while
Chương trình dưới đây tính tổng các số được người dùng nhập cho đến khi người dùng nhập 0.
Để lấy input từ người dùng, sử dụng đối tượng Scanner. Truy cập Input cơ bản trong Java để tìm hiểu thêm về cách lấy input từ người dùng.
/**
* Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
*
* @author cafedevn
* Contact: cafedevn@gmail.com
* Fanpage: https://www.facebook.com/cafedevn
* Instagram: https://instagram.com/cafedevn
* Twitter: https://twitter.com/CafedeVn
* Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
*/
import java.util.Scanner;
class Sum {
public static void main(String[] args) {
Double number, sum = 0.0;
// creates an object of Scanner class
Scanner input = new Scanner(System.in);
do {
// takes input from the user
System.out.print("Enter a number: ");
number = input.nextDouble();
sum += number;
} while (number != 0.0); // test expression
System.out.println("Sum = " + sum);
}
}
Khi bạn chạy chương trình, kết quả sẽ là:
1
2
3
4
10. Vòng lặp while vô hạn
Nếu biểu thức kiểm tra không bao giờ cho kết quả false, phần thân của vòng lặp while và do .. while được thực hiện vô số lần (ít nhất, trên lý thuyết là như vậy). Ví dụ,
// Infinite while loop
while (true) {
// body of while loop
}
Hãy lấy một ví dụ khác,
// Infinite while loop
int i = 100;
while (i == 100) {
System.out.print("Hey!");
}
Vòng lặp do…while vô hạn hoạt động tương tự như cách vòng lặp while hoạt động.