Ý tưởng về vòng lặp for trong Java giống với C++. Các bạn có thể xem lại bài Cú pháp và cách sử dụng vòng lặp for trong C++ để nắm rõ ý tưởng về vòng lặp for. Bài này sẽ trình bày các ví dụ của vòng lặp for trong Java. Ngoài ra, một cấu trúc vòng lặp là for-each cũng sẽ được giới thiệu.
1. Vòng lặp for trong Java
Vòng lặp for được sử dụng để chạy một khối code trong một số lần nhất định. Cú pháp:
for (<khởi đầu>; <điều kiện lặp>; <bước nhảy>) {
//code block
}
Nguyên lý hoạt động của vòng lặp for như sau:
<khởi đầu> khởi tạo giá trị của biến và chỉ thực thi một lần duy nhất. Sau đó, nếu <điều kiện lặp> đúng (true) thì thực thi các dòng lệnh trong vòng lặp for. Nếu <điều kiện lặp> sai (false) thì kết thúc vòng lặp.
<bước nhảy> sẽ thay đổi giá trị của biến lúc <khởi đầu>. Giá trị của biến này sẽ được kiểm tra lại (kiểm tra <điều kiện lặp>) sau mỗi lần lặp.
Ví dụ bên dưới sẽ in ra “Java is fun” 5 lần.
class Main {
public static void main(String[] args) {
int n = 5;
// for loop
for (int i = 1; i <= n; ++i) {
System.out.println("Java is fun");
}
}
}
Kết quả
Java is fun
Java is fun
Java is fun
Java is fun
Java is fun
Giá trị khởi tạo cho vòng lặp for
<khởi đầu> trong vòng lặp for không hẳn lúc nào cũng là int i = 1, có thể thay đổi để phù hợp với yêu cầu hoặc quy ước trong lập trình.
class Main {
public static void main(String[] args) {
int n = 5;
// for loop
for (int i = 0; i < n; ++i) {
System.out.println("Java is fun");
}
}
}
Trong chương trình trên, giá trị khởi tạo là i=0.
Vòng lặp for vô hạn
Lưu ý <điều kiện lặp> để tránh trường hợp vòng lặp vô hạn.
class Main {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 10; --i) {
System.out.println("Hello");
}
}
}
<điều kiện lặp> ở ví dụ trên là i<=10, <khởi đầu> là i = 1, <bước nhảy> là –i thì <điều kiện lặp> sẽ không bao giờ false và vòng lặp for sẽ lặp vô hạn.
2. Vòng lặp for each trong Java
Vòng lặp for trong Java có một cú pháp thay thế giúp dễ dàng duyệt qua các mảng (array) và tập hợp (collection). Đó là vòng lặp for-each. Cú pháp:
for(dataType item : array) {
...
}
Trong đó,
array là một mảng hay một tập hợp.
item là mỗi phần tử trong mảng hay tập hợp
dataType là kiểu dữ liệu của các phần tử trong mảng hay tập hợp
class Main {
public static void main(String[] args) {
// create an array
int[] numbers = {3, 9, 5, -5};
// for each loop
for (int number: numbers) {
System.out.println(number);
}
}
}
Kết quả
3
9
5
-5
Chương trình trên sử dụng for-each để duyệt mảng. Ở lần lặp thứ 1 thì item là 3, lần lặp thứ 2 thì item là 9, lần lặp thứ 3 thì item là 5, lần lặp thứ 4 thì item là -5.
Lưu ý: Vòng lặp for và for-each cho kết quả duyệt mảng như nhau, nhưng for-each ngắn gọn và dễ hiểu hơn.
Sử dụng cả mảng hai chiều và mảng 1 chiều trong vòng lặp for được không ạ
Người ta sử dụng vòng lặp for để duyệt các phần tử trong mảng 1 chiều và 2 chiều nhé em.