1. Giới thiệu
Hãy tưởng tượng bạn có nhiệm vụ: in ra màn hình «Xin chào!» mười lần. Tất nhiên, bạn có thể viết mười dòng với Console.WriteLine("Xin chào!"); — nhưng giờ bạn đã biết vòng lặp while rồi, nên chuyện này dễ như ăn kẹo.
Nhưng còn có một vòng lặp nữa — for, nó lặp lại hành động cần thiết đúng số lần bạn muốn. Và nó tự đếm luôn!
Đây là ví dụ điển hình:
for (int i = 0; i < 10; i++)
{
Console.WriteLine("Xin chào!");
}
Đoạn code này làm gì? Nó in ra màn hình chữ «Xin chào!» đúng 10 lần. Không cần copy-paste, không đau cổ tay.
2. Cú pháp vòng lặp for
Vòng lặp for gồm ba phần chính, được viết trong ngoặc tròn sau từ khóa for:
for (khởi tạo; điều kiện; thay đổi)
{
// Thân vòng lặp
}
Cùng phân tích từng phần nhé:
- Khởi tạo — thường là tạo biến đếm, bắt đầu đếm số lần lặp (int i = 0).
- Điều kiện — kiểm tra trước mỗi vòng lặp. Nếu đúng — thực hiện thân vòng lặp. Nếu sai — vòng lặp kết thúc. Ví dụ, i < 10.
- Thay đổi — lệnh thực hiện sau mỗi vòng lặp. Thường là tăng hoặc giảm biến đếm (i++).
Có thể vẽ sơ đồ như sau:
3. So sánh for và while
Có thể bạn sẽ dễ hiểu hơn nếu mình nói rằng for chỉ là một cách viết khác của vòng lặp while.
Chúng ta có vòng lặp while như sau:
int i = 0; // Khởi tạo biến cho vòng lặp
while(i < 10) // Kiểm tra điều kiện tiếp tục vòng lặp
{
Console.WriteLine(i); // Hành động hữu ích (thân vòng lặp)
i++; // Tăng biến đếm
}
Chúng ta có thể viết lại nó bằng vòng lặp for, chỉ cần chuyển tất cả các thao tác điều khiển logic vòng lặp:
for (int i = 0; i < 10; i++) // Khởi tạo; Kiểm tra điều kiện; Tăng biến đếm
{
Console.WriteLine(i); // Hành động hữu ích (thân vòng lặp)
}
Các bước hoạt động của cả hai vòng lặp:
- Khởi tạo int i = 0; thực hiện 1 lần trước vòng lặp.
- Sau đó kiểm tra điều kiện i <= 10
- Tiếp theo là hành động của vòng lặp Console.WriteLine(i);
- Sau đó tăng biến đếm i++
- Tiếp tục quay lại bước 2.
4. Ví dụ sử dụng vòng lặp for
Ví dụ đơn giản nhất
Hãy in ra các số từ 1 đến 5:
for (int i = 1; i <= 5; i++)
{
Console.WriteLine(i);
}
Kết quả:
1
2
3
4
5
Lưu ý: nếu bạn viết i < 5, số cuối cùng sẽ là 4.
Đếm ngược
Muốn cảm giác như phi hành gia? Làm thử đếm ngược nhé!
for (int i = 5; i > 0; i--)
{
Console.WriteLine(i);
}
Console.WriteLine("Đi thôi!");
Kết quả:
5
4
3
2
1
Đi thôi!
Bước nhảy khác 1
Bạn có thể thay đổi biến đếm không chỉ là 1, mà là bất kỳ số nào:
for (int i = 0; i <= 10; i += 2)
{
Console.WriteLine(i);
}
// Sẽ in: 0 2 4 6 8 10
5. Biến thể của vòng lặp for
Nhiều biến trong vòng lặp
Đôi khi tiện theo dõi hai biến cùng lúc. Ví dụ, hãy in số từ phải sang trái và từ trái sang phải:
for (int left = 1, right = 10; left <= 10; left++, right--)
{
Console.WriteLine($"{left} {right}");
}
Kết quả:
1 10
2 9
3 8
...
10 1
Vòng lặp for vô hạn
Nếu trường hợp cực kỳ khó (ví dụ, dự án của bạn là động cơ vĩnh cửu trong IT), bạn có thể tạo vòng lặp for "vô tận":
for (;;) // không khởi tạo, không điều kiện, không thay đổi
{
Console.WriteLine("Làm việc, làm việc và lại làm việc!");
}
Chú ý: vòng lặp này chỉ kết thúc nếu trong thân có break, return hoặc throw. Đừng dùng nó nếu không cần thiết, kẻo bạn sẽ đánh thức con quỷ cổ xưa — "Quá trình không phản hồi".
GO TO FULL VERSION