![[Java căn bản] Bài 7: Các loại vòng lặp trong Java](https://tuandc.com/wp-content/uploads/2017/08/ngon-ngu-lap-trinh-java.jpg)
[Java căn bản] Bài 7: Các loại vòng lặp trong Java

Bạn chắc chắn không muốn viết đi, viết lại một đoạn code giống nhau để xử lý một công việc đơn điệu, và thật tế cũng chẳng có ai làm như thế cả. Vòng lặp là một trong những thành phần được sử dụng nhiều nhất để thao tác với dữ liệu hay các công việc lặp đi lặp lại nhiều lần. Trong Java vòng lặp cũng tương tự như các ngôn ngữ khác. Trong bài viết này, mình sẽ chia sẻ với bạn về 4 loại vòng lặp phổ biến trong Java.
Vòng lặp while trong Java
While
là một vòng lặp thực hiện công việc lặp lại một tác vụ nào đó với điều kiện được cho trước. Cú pháp
while(Bieu_thuc) { //Công việc }
- Biểu thức trong
while
là một biểu thức trả về giá trị boolean, ví dụA > 5
. Ví dụ:
public class tuandc {
static int a = 10;
public static void main(String[] args) {
int i = 1;
while (a > i){
System.out.println(i);
i++;
}
}
}
Với while
, điều kiện sẽ được kiểm tra trước khi vòng lặp được thực hiện. Trong vòng lặp này bạn phải lưu ý kiểm soát tốt giá trị để không xảy ra hiện tượng lặp không có điểm dừng. Ví dụ, nếu mình bỏ đoạn i++
; thì vòng lặp sẽ trở thành vòng lặp không có điểm dừng vì điều kiện a > i
là luôn luôn đúng.
Vòng lặp for trong Java
Vòng lặp for
là một loại vòng lặp được dùng nhiều hơn vòng lặp while
. Với for
thì giá trị của biến tăng được đặt này trong điều kiện vòng lặp nên sẽ khó xảy ra tình trạng vòng lặp không có điểm dừng. Cú pháp:
for(bien_khoi_tao; bieu_thuc; bien_cap_nhat) { //Công việc }
bien_khoi_tao
: là một biến được tạo ra trong vòng lặp để làm điều kiện so sánh trong biểu thức.bieu_thuc
: là một biểu thức trả về giá trị boolean.bien_cap_nhat
: là hành động cập nhật giá trị cho biến khởi tạo.
Sau mỗi vòng, bien_cap_nhat
sẽ được thực thi, bieu_thuc
được kiểm tra lại trước khi công việc được tiếp tục thực hiện. Ví dụ.
public class tuandc {
static int a = 10;
public static void main(String[] args) {
for (int i=0; i<a; i ++)
{
System.out.println(i);
}
}
}
Với tính chất đầy đủ hơn so với while
thì for
là một vòng lặp thường xuyên được sử dụng hơn nhiều. Tuy nhiên cả while
và for
đều có đặc điểm chung là đều kiểm tra điều kiện trước khi thực thi công việc, trong một số trường hợp bạn muốn thực hiện công việc trước khi thực thi thì bạn phải dùng đến một vòng lặp khác.
Vòng lặp do … while trong Java
Ngược lại so với while
và for
, thì do...while
sẽ cho phép thực hiện ít nhất một lần trước khi kiểm tra điều kiện. Đối với hai vòng lặp trên, công việc có thể sẽ không được thực hiện lần nào, nhưng đối với vòng lặp này nó sẽ ít nhất một lần được thực hiện công việc. Cú pháp:
do { // Công việc }while(Bieu_thuc);
Mình sẽ không giải thích thêm nữa vì mọi thứ đều rất dễ hiểu rồi. Ví dụ như sau:
public class tuandc {
static int a = 10;
public static void main(String[] args) {
do{
System.out.println(a);
a++;
} while(a<10);
}
}
Nếu bạn thực thi ví dụ trên bạn sẽ thấy mặc dù không đủ điều kiện (a < 10
) nhưng công việc trong do
vẫn được thực thi 1 lần.
Vòng lặp foreach trong Java
foreach
là vòng lặp mới trong Java 5. Mặc dù trước đó nó đã được sử dụng trên nhiều loại ngôn ngữ lập trình khác. Nếu bạn làm việc với cơ sở dữ liệu, các mảng thì foreach
là một vòng lặp thường xuyên được sử dụng với những kiểu dữ liệu đó, vòng lặp này không cần phải khai báo điều kiện để sử dụng, nó sẽ tự động dừng khi lặp hết giá trị trong biểu thức hoặc mảng. Cú pháp:
for(Khai_bao_bien : Bieu_thuc/Mang) { //Công việc }
Biến được khai báo trong foreach
sẽ dùng để lưu trữ từng giá trị lặp được lấy ra trong biểu thức hoặc mảng. Ví dụ:
public class tuandc {
static int a = 10;
public static void main(String[] args) {
int [] nums = {5, 10, 15, 20};
for( int i:nums){
System.out.println(i);
}
}
}
Vòng lặp này vẫn sử dụng từ khóa for
, một sự bất tiện không hề nhỏ trong việc lập trình, các ngôn ngữ khác sử dụng từ foreach
rất dễ phân biệt, đây là điều mình không thích trong ngôn ngữ Java.
Các lệnh điều khiển vòng lặp
Trong quá trình sử dụng vòng lặp, đôi khi chúng ta cần dừng vòng lặp ở một điều kiện nào đó hoặc tiếp tục thì chúng ta cần thêm hai lệnh để điều khiển, đó là break
(dừng vòng lặp) và continue
(tiếp tục vòng lặp).
Một ví dụ về break
:
public class tuandc {
static int a = 10;
public static void main(String[] args) {
int [] nums = {5, 10, 15, 20};
for( int i:nums){
if(i == 10){
break;
}
System.out.println(i);
}
}
}
Continue
thì tương tự nhé.
