Theo w3school
Vòng lặp
Các vòng lặp có thể thực thi một khối mã miễn là đạt được một điều kiện cụ thể. Vòng lặp rất tiện dụng vì chúng tiết kiệm thời gian, giảm lỗi và giúp mã dễ đọc hơn.
While loop
Vòng lặp while sẽ liên tục lặp lại qua một khối mã miễn là điều kiện được chỉ định vẫn đúng.
while (condition) {
// code block to be executed
}
Trong ví dụ dưới đây, mã trong vòng lặp sẽ chạy đi chạy lại, miễn là biến (i) vẫn còn nhỏ hơn 5:
int i = 0;
while (i < 5) {
System.out.println(i);
i++;
}
Lưu ý: Đừng quên tăng biến được sử dụng trong điều kiện, nếu không vòng lặp sẽ không bao giờ kết thúc!
Do While loop
Vòng lặp do/while
là một biến thể của vòng lặp while. Vòng lặp này sẽ thực thi khối mã một lần, trước khi kiểm tra xem điều kiện có đúng không, sau đó nó sẽ lặp lại vòng lặp miễn là điều kiện lặp còn đúng.
do {
// code block to be executed
}
while (condition);
Ví dụ dưới đây sử dụng một vòng lặp do while. Vòng lặp sẽ luôn được thực hiện ít nhất một lần, ngay cả khi điều kiện là sai, vì khối mã được thực thi trước khi điều kiện được kiểm tra:
int i = 0;
do {
System.out.println(i);
i++;
}
while (i < 5);
Đừng quên tăng biến được sử dụng trong điều kiện, nếu không vòng lặp sẽ không bao giờ kết thúc!
For loop
Khi bạn biết chính xác số lần bạn muốn lặp qua một khối mã, hãy sử dụng vòng lặp for thay vì vòng lặp while:
for (câu lệnh 1; câu lệnh 2; câu lệnh 3) {
// code block to be executed
}
Câu lệnh 1 được thực hiện (một lần) trước khi khối mã thực thi.
Câu lệnh 2 xác định điều kiện để thực thi khối mã.
Câu lệnh 3 được thực hiện (mọi lúc) sau khi khối mã đã được thực thi.
Ví dụ dưới đây sẽ in các số từ 0 đến 4:
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
Giải thích ví dụ
Câu lệnh 1 đặt một biến trước khi vòng lặp bắt đầu (int i = 0).
Câu lệnh 2 xác định điều kiện để chạy vòng lặp (i phải nhỏ hơn 5). Nếu điều kiện đúng, vòng lặp sẽ bắt đầu lại, nếu sai, vòng lặp sẽ kết thúc.
Câu lệnh 3 tăng một giá trị (i ++) mỗi khi khối mã trong vòng lặp được thực thi.
Ví dụ tiếp theo sẽ chỉ in các giá trị chẵn từ 0 đến 10:
for (int i = 0; i <= 10; i = i + 2) {
System.out.println(i);
}
For each loop
Ngoài ra còn có một vòng lặp ” for-each “, được sử dụng riêng để lặp qua các phần tử trong một mảng :
for (type variableName : arrayName) {
// code block to be executed
}
Ví dụ sau xuất ra tất cả các phần tử trong mảng cars , sử dụng vòng lặp ” for each”:
String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
for (String i : cars) {
System.out.println(i);
}
Lưu ý: Đừng lo lắng nếu bạn không hiểu ví dụ trên. Bạn sẽ tìm hiểu thêm về Mảng trong chương Mảng Java .
Break
Bạn đã thấy câu lệnh break được sử dụng trong chương trước của hướng dẫn này. Nó được sử dụng để “nhảy ra” một lệnh switch
.
Câu lệnh break cũng có thể được sử dụng để nhảy ra khỏi vòng lặp .
Ví dụ này dừng vòng lặp khi giá trị bằng 4:
for (int i = 0; i < 10; i++) {
if (i == 4) {
break;
}
System.out.println(i);
}
Khi vòng lặp i tăng đến 4 thì vòng lặp sẽ dừng lại.
Continue
Câu lệnh continue bỏ qua một lần lặp (trong vòng lặp), nếu một điều kiện cụ thể xảy ra và tiếp tục với lần lặp tiếp theo trong vòng lặp.
Ví dụ này bỏ qua giá trị của 4:
for (int i = 0; i < 10; i++) {
if (i == 4) {
continue;
}
System.out.println(i);
}
Với ví dụ này bạn sẽ thấy giá trị i=4 sẽ không được in ra.
Break và Continue trong While Loop
Bạn cũng có thể sử dụng break
và continue
trong vòng lặp while:
int i = 0;
while (i < 10) {
System.out.println(i);
i++;
if (i == 4) {
break;
}
}
int i = 0;
while (i < 10) {
if (i == 4) {
i++;
continue;
}
System.out.println(i);
i++;
}