Vòng lặp trong lập trình dùng tự động hóa tác vụ tương tự lặp lại nhiều lần. Ví dụ, tạo chương trình gộp giá và tên tất cả món menu trưa nhà hàng, bạn có thể muốn dùng vòng lặp tự động hóa tác vụ.
Trong Java, vòng lặp for dùng lặp thực thi khối mã số lần nhất định. Trong khi vòng lặp while chạy cho đến điều kiện đánh giá false, vòng lặp for chạy số lần lặp nhất định.
Hướng dẫn này thảo luận cách dùng vòng lặp for và foreach trong Java, kèm vài ví dụ vòng lặp for và foreach trong chương trình Java.
Vòng Lặp For Trong Java
Giả sử muốn in nội dung mảng chứa 100 mục ra bảng điều khiển. Hoặc muốn tăng giá mọi thứ trong cửa hàng 5 xu. Thay vì làm thủ công, bạn muốn dùng vòng lặp.
Trong Java, vòng lặp for dùng chạy tác vụ cụ thể nhiều lần. Cú pháp vòng lặp for trong Java:
for (initialization; expression; updateCounter) { // Execute code }
Vòng lặp có ba thành phần:
- initialization là câu lệnh khởi tạo biến theo dõi số lần vòng lặp thực thi.
- expression là điều kiện vòng lặp
forđánh giá. Phải là biểu thức boolean điều kiện true hoặc false. - updateCounter thực thi sau khối mã và cập nhật biến khởi tạo.
Tất cả thành phần đều bắt buộc.
Hãy đi qua ví dụ minh họa cách vòng lặp for hoạt động trong Java. Giả sử tạo chương trình cho học sinh lớp ba tìm bảng nhân 10. Chương trình giúp ôn tập kỳ thi toán sắp tới.
Thay vì tính 1 * 10, 2 * 10, v.v. riêng lẻ, thay vào đó dùng vòng lặp for tính mỗi giá trị bảng nhân 10. Mã tính tất cả giá trị 1-10 trong bảng nhân 10:
public class TimesTable { public static void main(String[] args) { for (int i = 1; i <= 10; ++i) { int answer = i * 10; System.out.println(i + " x 10 is " + answer); } } }
Mã trả về:
1 x 10 is 10 2 x 10 is 20 3 x 10 is 30 4 x 10 is 40 5 x 10 is 50 6 x 10 is 60 7 x 10 is 70 8 x 10 is 80 9 x 10 is 90 10 x 10 is 100
Như bạn thấy, chương trình tính tất cả giá trị bảng nhân 10 lên đến 10 * 10. Hãy khám phá mã và thảo luận cách hoạt động từng bước.
Đầu tiên khai báo lớp TimesTable chứa mã chương trình. Sau đó tạo vòng lặp for thực thi mã trong vòng lặp 10 lần. Ba thành phần vòng lặp for:
int i = 1bảo mã bắt đầu đếm từ giá trị 1.i <= 10bảo mã thực thi vòng lặpforchỉ nếu giá trịinhỏ hơn hoặc bằng 10.++icộng 1 vào biếnisau khi vòng lặpforthực thi. Đây gọi là bộ đếm tăng (increment counter).
Sau đó in câu lệnh có bài toán toán học và đáp án. Câu lệnh định dạng [i counter number] x 10 is, theo sau đáp án bài toán.
Vòng Lặp For Each Trong Java
Khi làm việc với mảng và tập hợp (collection), có loại vòng lặp for khác dùng lặp qua nội dung mảng hoặc tập hợp đang làm việc. Đây gọi là vòng lặp for-each, hoặc vòng lặp for nâng cao (enhanced for loop).
Cú pháp vòng lặp for-each:
for (dataType item : collection) { // Execute code }
Ba thành phần vòng lặp for-each:
- dataType là kiểu dữ liệu mục dùng.
- item là mục đơn lẻ trong tập hợp.
- collection là biến mảng hoặc tập hợp vòng lặp
forlặp qua.
Vòng lặp for-each lặp qua từng mục trong tập hợp, lưu từng mục trong biến item, sau đó thực thi mã trong thân vòng lặp. Hãy đi qua ví dụ thảo luận cách hoạt động.
Giả sử điều hành quán cà phê, muốn giảm giá mỗi ly cà phê 25 xu cho flash-sale. Có danh sách giá mỗi cà phê, muốn trừ 25 xu từ mỗi giá.
Có thể làm bằng mã sau:
public class ReducePrices { public static void main(String[] args) { double[] prices = {2.50, 2.75, 3.00, 2.75, 2.75, 2.30, 3.00, 2.60}; for (double i : prices) { double new_price = i - 0.25; System.out.println("The new price is " + new_price); } } }
Mã trả về:
The new price is 2.25 The new price is 2.5 The new price is 2.75 The new price is 2.5 The new price is 2.5 The new price is 2.05 The new price is 2.75 The new price is 2.35
Như bạn thấy, chương trình giảm giá mỗi cà phê 50 xu. Bây giờ có dữ liệu cần thay đổi giá cà phê cho flash sale.
Hãy đi qua mã từng bước. Đầu tiên khai báo lớp ReducePrices chứa mã ví dụ. Sau đó khai báo mảng prices lưu giá cà phê. Mảng khai báo là mảng double, số thập phân.
Sau đó tạo vòng lặp foreach chạy qua mỗi mục mảng prices. Với mỗi mục, chương trình giảm giá cà phê 50 xu gán giá giảm cho biến new_price. Sau đó chương trình in The new price is , theo sau giá mới cà phê.
Kết Luận
Vòng lặp for trong Java dùng thực thi khối mã số lần nhất định. Vòng lặp for-each dùng chạy khối mã cho mỗi mục trong mảng hoặc tập hợp.
Trong hướng dẫn này, khám phá cách dùng vòng lặp for và for-each trong Java. Cũng tham khảo ví dụ mỗi vòng lặp trong thực tế. Cũng thảo luận cách mỗi ví dụ hoạt động từng bước.
Bây giờ bạn trang bị kiến thức cần thiết dùng vòng lặp for và for-each Java như chuyên gia!