VieTopik
Thư việnLuyện thiGóc học tậpĐánh dấu
Tải app
  • Thư viện
  • Luyện thi
  • Góc học tập
  • Đánh dấu
C# Core

Bài 5/7

Vòng lặp

5 phút đọc

Nội dung bài

  1. 1.Khái niệm
  2. 2.Ví dụ
  3. 3.while và break
  4. 4.Thử ngay
  5. 5.Lỗi hay gặp
  6. 6.Tóm tắt

In bảng giá cho 1 đến 10 sản phẩm, hay nhắc khách nhập lại cho tới khi nhập đúng: đó là những việc lặp đi lặp lại. Thay vì viết một câu lệnh mười lần, bạn dùng vòng lặp.

Khái niệm

🔁 Vòng lặp (loop): khối code được chạy lặp lại nhiều lần cho tới khi điều kiện dừng thành sai.

🔢 for: vòng lặp dùng khi biết trước số lần lặp, có sẵn biến đếm.

⏳ while: vòng lặp dùng khi chỉ biết điều kiện dừng, không biết trước số lần lặp.

Ví dụ

decimal price = 5000m;

for (int i = 1; i <= 3; i++)
{
    Console.WriteLine(i + " cái: " + price * i);
}
1 cái: 5000
2 cái: 10000
3 cái: 15000

Dòng for có ba phần, cách nhau bằng dấu ;:

  • int i = 1: khởi tạo biến đếm, chạy một lần lúc bắt đầu.
  • i <= 3: điều kiện, còn đúng thì còn lặp.
  • i++: tăng i thêm 1 sau mỗi vòng (i-- thì giảm 1).

while và break

while chỉ có điều kiện. Vòng lặp chạy mãi cho tới khi điều kiện sai:

int stock = 10;
int orders = 0;

while (stock >= 3)
{
    stock = stock - 3;
    orders++;
}

Console.WriteLine(orders);   // 3
Console.WriteLine(stock);    // 1

break thoát khỏi vòng lặp ngay lập tức, kể cả khi điều kiện vẫn đúng.

Thử ngay

Dán vào Program.cs rồi chạy dotnet run:

for (int i = 1; i <= 10; i++)
{
    if (i == 4)
    {
        break;
    }
    Console.WriteLine("Đơn số " + i);
}

Đoán trước khi chạy: màn hình in ra bao nhiêu dòng?

Xem kết quả
Đơn số 1
Đơn số 2
Đơn số 3

Ba dòng. Khi i bằng 4, break thoát vòng lặp trước khi kịp in.

Lỗi hay gặp

Vòng lặp vô tận. Quên thay đổi biến trong điều kiện, nên điều kiện đúng mãi và chương trình treo.

// SAI — stock không bao giờ giảm
int stock = 10;
while (stock > 0)
{
    Console.WriteLine("Bán 1 cái");
}
// ĐÚNG
int stock = 10;
while (stock > 0)
{
    Console.WriteLine("Bán 1 cái");
    stock--;
}

Lệch một vòng. < và <= khác nhau đúng một lần lặp.

// SAI — muốn in 1 đến 5 nhưng chỉ ra 1 đến 4
for (int i = 1; i < 5; i++)
{
    Console.WriteLine(i);
}
// ĐÚNG
for (int i = 1; i <= 5; i++)
{
    Console.WriteLine(i);
}

Tóm tắt

  • Biết trước số lần lặp thì dùng for, chỉ biết điều kiện dừng thì dùng while.
  • for (khởi tạo; điều kiện; bước tăng).
  • break thoát vòng lặp ngay.
  • Luôn kiểm tra: biến trong điều kiện có thay đổi không, và dùng < hay <=.

Tự kiểm tra

0/3 câu
Câu 1

for (int i = 0; i < 3; i++) Console.WriteLine(i); In ra những số nào?

Câu 2

Chương trình cần hỏi mật khẩu cho tới khi người dùng nhập đúng. Vòng lặp nào phù hợp?

Câu 3

int n = 5; while (n > 0) { Console.WriteLine(n); } Chuyện gì xảy ra?

if/else và switchMethod