C# cho phép bạn sử dụng một vòng lặp bên trong một vòng lặp. Dưới đây là một số ví dụ minh họa khái niệm này.
Cú pháp để lồng vòng lặp for trong C# như sau:
for ( khởi_tạo_biến_vòng_lặp; điều_kiện; tăng_giảm_biến_vòng_lặp ) { for ( khởi_tạo_biến_vòng_lặp; điều_kiện; tăng_giảm_biến_vòng_lặp ) { các lệnh được thực thi } các lệnh được thực thi }
Cú pháp để lồng vòng lặp while trong C# như sau:
while(điều_kiện) { while(điều_kiện) { các lệnh được thực thi } các lệnh được thực thi }
Cú pháp để lồng vòng lặp do...while trong C# như sau:
do { các lệnh được thực thi do { các lệnh được thực thi } while( điều_kiện ); } while( điều_kiện );
Ghi chú cuối cùng về lồng vòng lặp là bạn có thể đặt bất kỳ kiểu vòng lặp bên trong kiểu vòng lặp khác. Ví dụ, một vòng lặp for có thể bên trong một vòng lặp while, và ngược lại.
Ví dụ
Chương trình sau sử dụng lồng vòng lặp for để tìm các số nguyên tố từ 2 đến 100:
using System; namespace HoclaptrinhCsharp { class TestCsharp { static void Main(string[] args) { Console.WriteLine("Long vong lap trong C#"); Console.WriteLine("Tim so nguyen to trong C#"); Console.WriteLine("-------------------------------"); /* phan dinh nghia bien cuc bo */ int i, j; for (i = 2; i < 100; i++) { for (j = 2; j <= (i / j); j++) if ((i % j) == 0) break; // neu tim thay uoc so thi khong phai la so nguyen to if (j > (i / j)) Console.WriteLine("{0} la so nguyen to", i); } Console.ReadLine(); Console.ReadKey(); } } }
Nếu bạn không sử dụng lệnh Console.ReadKey(); thì chương trình sẽ chạy và kết thúc luôn (nhanh quá đến nỗi bạn không kịp nhìn kết quả). Lệnh này cho phép chúng ta nhìn kết quả một cách rõ ràng hơn.
Biên dịch và chạy chương trình C# trên sẽ cho kết quả sau: