Vòng lặp lồng nhau trong Java (Có ví dụ)

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về các vòng lặp lồng nhau trong Java với sự trợ giúp của các ví dụ.

Nếu một vòng lặp tồn tại bên trong phần thân của một vòng lặp khác, nó được gọi là vòng lặp lồng nhau. Đây là một ví dụ về forvòng lặp lồng nhau .

 // outer loop for (int i = 1; i <= 5; ++i) ( // codes // inner loop for(int j = 1; j <=2; ++j) ( // codes )… )

Ở đây, chúng tôi đang sử dụng một forvòng lặp bên trong một forvòng lặp khác .

Chúng ta có thể sử dụng vòng lặp lồng nhau để lặp lại từng ngày trong tuần trong 3 tuần.

Trong trường hợp này, chúng ta có thể tạo một vòng lặp để lặp lại ba lần (3 tuần). Và, bên trong vòng lặp, chúng ta có thể tạo một vòng lặp khác để lặp lại 7 lần (7 ngày).

Ví dụ 1: Java lồng nhau cho vòng lặp

 class Main ( public static void main(String() args) ( int weeks = 3; int days = 7; // outer loop prints weeks for (int i = 1; i <= weeks; ++i) ( System.out.println("Week: " + i); // inner loop prints days for (int j = 1; j <= days; ++j) ( System.out.println(" Day: " + j); ) ) ) )

Đầu ra

Tuần: 1 Ngày: 1 Ngày: 2 Ngày: 3…. Tuần: 2 Ngày: 1 Ngày: 2 Ngày: 3….….

Trong ví dụ trên, vòng lặp bên ngoài lặp lại 3 lần và in 3 tuần. Và, vòng lặp bên trong lặp lại 7 lần và in ra 7 ngày.

Chúng ta cũng có thể tạo các vòng lặp lồng nhau với while và do… while theo cách tương tự.

Lưu ý : Có thể sử dụng một loại vòng lặp bên trong thân của một vòng lặp khác. Ví dụ, chúng ta có thể đặt một forvòng lặp bên trong whilevòng lặp.

Ví dụ 2: Vòng lặp for Java bên trong vòng lặp while

 class Main ( public static void main(String() args) ( int weeks = 3; int days = 7; int i = 1; // outer loop while (i <= weeks) ( System.out.println("Week: " + i); // inner loop for (int j = 1; j <= days; ++j) ( System.out.println(" Days: " + j); ) ++i; ) ) )

Đầu ra :

Tuần: 1 Ngày: 1 Ngày: 2 Ngày: 3…. Tuần: 2 Ngày: 1 Ngày: 2 Ngày: 3….….

Ở đây bạn có thể thấy rằng kết quả của cả Ví dụ 1Ví dụ 2 là như nhau.

Ví dụ 3: Các vòng lặp lồng nhau trong Java để tạo một mẫu

Chúng ta có thể sử dụng vòng lặp lồng nhau trong Java để tạo các mẫu như kim tự tháp đầy đủ, một nửa kim tự tháp, kim tự tháp ngược, v.v.

Đây là một chương trình để tạo một mô hình nửa kim tự tháp bằng cách sử dụng các vòng lặp lồng nhau.

 class Main ( public static void main(String() args) ( int rows = 5; // outer loop for (int i = 1; i <= rows; ++i) ( // inner loop to print the numbers for (int j = 1; j <= i; ++j) ( System.out.print(j + " "); ) System.out.println(""); ) ) )

Đầu ra

 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5

Để tìm hiểu thêm, hãy truy cập chương trình Java để in kim tự tháp và các mẫu.

ngắt và tiếp tục Bên trong Vòng lặp lồng nhau

Khi chúng ta sử dụng một breakcâu lệnh bên trong vòng lặp bên trong, nó kết thúc vòng lặp bên trong nhưng không kết thúc vòng lặp bên ngoài. Ví dụ,

 class Main ( public static void main(String() args) ( int weeks = 3; int days = 7; // outer loop for(int i = 1; i <= weeks; ++i) ( System.out.println("Week: " + i); // inner loop for(int j = 1; j <= days; ++j) ( // break inside the inner loop if(i == 2) ( break; ) System.out.println(" Days: " + j); ) ) ) )

Đầu ra

Tuần: 1 Ngày: 1 Ngày: 2…. Tuần: 2 Tuần: 3 Ngày: 1 Ngày: 2….….

Trong ví dụ trên, chúng ta đã sử dụng câu lệnh break bên trong forvòng lặp bên trong . Ở đây, chương trình bỏ qua vòng lặp khi tôi là 2 .

Do đó, các ngày trong tuần thứ 2 không được in. Tuy nhiên, vòng lặp bên ngoài in tuần không bị ảnh hưởng.

Tương tự, khi chúng ta sử dụng một continuecâu lệnh bên trong vòng lặp bên trong, nó chỉ bỏ qua lần lặp hiện tại của vòng bên trong. Vòng ngoài không bị ảnh hưởng. Ví dụ,

 class Main ( public static void main(String() args) ( int weeks = 3; int days = 7; // outer loop for(int i = 1; i <= weeks; ++i) ( System.out.println("Week: " + i); // inner loop for(int j = 1; j <= days; ++j) ( // continue inside the inner loop if(j % 2 != 0) ( continue; ) System.out.println(" Days: " + j); ) ) ) )

Đầu ra

 Tuần: 1 Ngày: 2 Ngày: 4 Ngày: 6 Tuần: 2 Ngày: 2 Ngày: 4 Ngày: 6 Tuần: 3 Ngày: 2 Ngày: 4 Ngày: 6

Trong ví dụ trên, chúng ta đã sử dụng câu lệnh continue bên trong vòng lặp for bên trong. Lưu ý mã,

 if(j % 2 != 0) ( continue; )

Ở đây, continuecâu lệnh được thực hiện khi giá trị của j là lẻ. Do đó, chương trình chỉ in những ngày chẵn.

Chúng ta có thể thấy continuecâu lệnh chỉ ảnh hưởng đến vòng lặp bên trong. Vòng lặp bên ngoài đang hoạt động mà không có vấn đề gì.

thú vị bài viết...