C# - C Sharp: Vòng lặp lồng
Giải phóng thời gian, khai phóng năng lực
Việc đặt một vòng lặp bên trong một vòng lặp khác thì gọi là vòng lặp lồng. Ví dụ, một vòng lặp while có thể được đặt trong vòng lặp do-while và một vòng lặp for có thể được đặt trong một vòng lặp while hoặc một vòng lặp for khác. Khi ta lồng hai vòng lặp, thì vòng lặp ngoài sẽ điều khiển số lần thực thực thi của vòng lặp bên trong. Cụ thể là với mỗi lần lặp của vòng lặp for ngoài thì vòng lặp bên trong sẽ được thực thi cho đến khi phần điều kiện của nó trở thành sai.
Số mức lồng nhau của các loại vòng lặp là không giới hạn. Trong thực tế thì ta hay bắt gặp sự lồng nhau của các vòng lặp for.
Đoạn mã 7 thể hiện việc sử dụng vòng lặp for lồng để hiển thị một mẫu.
Đoạn mã 7:
namespace Demo1 { internal class demo1 { static void Main(string[] args) { //Vòng lặp for ngoài thực thi 5 lần for (int row = 1; row <= 5; row++) { // Mỗi lần lặp for ngoài thì vòng lặp for trong sẽ lặp row lần for (int col = 1; col <= row; col++) { Console.Write(" * "); } //Kết thúc vòng lặp for trong Console.WriteLine(); } //Kết thúc vòng lặp for ngoài } } }
Phân tích đoạn mã: vòng lặp for ngoài bắt đầu với biến đếm row được khởi tạo giá trị ban đầu là 1. Giá trị trong row sẽ tăng dần qua câu lệnh row++ cho đến khi row > 5. Thân của vòng lặp for ngoài chứa vòng lặp for trong, trong đó biến đếm col được khởi tạo giá trị ban đầu là 1. Vòng lặp for trong sẽ được thực thi cho đến khi col > row.
Mỗi khi thực hiện xong vòng lặp for bên trong thì quyền điều khiển lại chuyển ra thành phần thứ 3 của vòng lặp for ngoài để tăng biến đếm row 1 đơn vị, rồi chuyển sang thành phần thứ 2 để kiểm tra điều kiện, nếu điều kiện đúng thì tiếp tục thực hiện vòng lặp for trong.
Output của đoạn mã trên như sau:
* * * * * * * * * * * * * * *
Giải phóng thời gian, khai phóng năng lực