Vòng lặp trong Java được sử dụng để lặp một loạt các giá trị. Chúng ta có thể sử dụng vòng lặp for để lặp một mảng, một list, hay một set..vv.. trong Java.
Vòng lặp for
Có 3 kiểu vòng lặp for trong Java
- for thường
- for-each hay vòng lặp for được cải tiến
- Vòng lặp for gán nhãn
Hãy cùng xem các kiểu khác nhau của vòng lặp for thông qua các ví dụ
Ví dụ về vòng lặp for
Vòng lặp for thường có cú pháp như sau
for (Khởi tạo biến; Điều kiện kết thúc; toán tử tăng hoặc giảm) { // Các câu lệnh được gọi }
- Khởi tạo biến chỉ thực hiện một lần khi vòng lặp for bắt đầu chạy
- Điều kiện kết thúc nên có kết quả là boolean, nếu trả về false thì vòng lặp sẽ thoát
- Toán tử tăng hoặc giảm được thực hiện sau mỗi lần vòng lặp for chạy xong. Trong hầu hết các trường hợp, nó sẽ dẫn đến thoả mãn điều kiện kết thúc vòng lặp trừ khi bạn không muốn vòng lặp kết thúc
Giả sử chúng ta muốn in số nguyên dương từ 5 đến 10 sử dụng vòng lặp for thường
package com.example.javaforloop; public class JavaForLoop { public static void main(String[] args) { //print integers 5 to 10 for (int i=5; i<=10; i++) { System.out.println("Java for loop example - " + i); } } }
Kết quả
Java for loop example - 5 Java for loop example - 6 Java for loop example - 7 Java for loop example - 8 Java for loop example - 9 Java for loop example - 10
Vòng lặp for each
Vòng lặp for each được gọi vòng lặp for cải tiến. Chúng ta có thể dùng vòng lặp for each để lặp mảng hoặc các phần tử của một collection. Vòng lặp for each được khuyến khích sử dụng bất cứ khi nào chúng ta có thể sử dụng, nó rất đơn giản và gọn nhẹ để viết
package com.example.javaforloop; import java.util.ArrayList; import java.util.List; public class JavaForEachLoopExample { public static void main(String[] args) { int[] intArray = { 1, 2, 3, 4, 5 }; for (int i : intArray) System.out.println("Java for each loop with array - " + i); List<String> fruits = new ArrayList<>(); fruits.add("Apple"); fruits.add("Banana"); fruits.add("Orange"); for (String f : fruits) System.out.println("Java for each loop with collection - " + f); } }
Kết quả
Java for each loop with array - 1 Java for each loop with array - 2 Java for each loop with array - 3 Java for each loop with array - 4 Java for each loop with array - 5 Java for each loop with collection - Apple Java for each loop with collection - Banana Java for each loop with collection - Orange
Chú ý rằng đoạn code trên do chỉ có một câu lệnh nên chúng ta không cần đặt code trong { }
Vòng lặp for gán nhãn
Chúng ta có thể thêm một nhãn cho vòng lặp for, nó rất là hữu ích với câu lệnh break và continue để thoát khỏi vòng lặp bên ngoài. Chú ý rằng các câu lệnh break và continue chỉ làm việc với vòng lặp bên trong. Sau đây là ví vụ của vòng lặp for gán nhãn và nó được sử dụng với câu lệnh continue như thế nào
int[][] intArr = { { 1, -2, 3 }, { 0, 3 }, { 1, 2, 5 }, { 9, 2, 5 } }; process: for (int i = 0; i < intArr.length; i++) { boolean allPositive = true; for (int j = 0; j < intArr[i].length; j++) { if (intArr[i][j] < 0) { allPositive = false; continue process; } } if (allPositive) { // process the array System.out.println("Processing " + Arrays.toString(intArr[i])); } allPositive = true; }