Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Điều khiển vòng lặp for với break và continue trong C#

break và continue là hai câu lệnh điều khiển luồng trong vòng lặp (for, while, do-while, foreach).

break - Thoát vòng lặp hoàn toàn

  • Kết thúc vòng lặp ngay lập tức.
  • Chuyển điều khiển đến câu lệnh sau vòng lặp.
  • Thường dùng: tìm thấy kết quả, gặp điều kiện dừng, thoát menu.

continue - Bỏ qua lần lặp hiện tại

  • Bỏ qua phần code còn lại trong thân vòng lặp lần hiện tại.
  • Nhảy đến bước cập nhật (iteration) và kiểm tra điều kiện tiếp theo.
  • Thường dùng: bỏ qua giá trị không hợp lệ, lọc dữ liệu.

Ví dụ: Nhập số, dừng khi âm (break), bỏ qua số âm (continue)

using System;

class Program
{
    static void Main()
    {
        int sum = 0;
        Console.WriteLine("Nhập 10 số nguyên (số âm để dừng - break):");
        
        // Ví dụ break
        for (int i = 1; i <= 10; i++)
        {
            Console.Write($"Số {i}: ");
            if (!int.TryParse(Console.ReadLine(), out int val))
            {
                Console.WriteLine("Không hợp lệ, tính là 0");
                val = 0;
            }
            
            if (val < 0)
            {
                Console.WriteLine("→ Gặp số âm, DỪNG LẠI (break)");
                break; // Thoát hẳn vòng lặp
            }
            
            sum += val;
        }
        Console.WriteLine($"Tổng (break): {sum}");
        
        // --- Reset ---
        sum = 0;
        Console.WriteLine("\nNhập 10 số nguyên (số âm sẽ BỎ QUA - continue):");
        
        // Ví dụ continue
        for (int i = 1; i <= 10; i++)
        {
            Console.Write($"Số {i}: ");
            if (!int.TryParse(Console.ReadLine(), out int val))
            {
                Console.WriteLine("Không hợp lệ, tính là 0");
                val = 0;
            }
            
            if (val < 0)
            {
                Console.WriteLine("→ Số âm, BỎ QUA (continue)");
                continue; // Nhảy sang i++ và kiểm tra i <= 10
            }
            
            sum += val;
        }
        Console.WriteLine($"Tổng (continue): {sum}");
    }
}

Kết quả mẫu

Nhập 10 số nguyên (số âm để dừng - break):
Số 1: 5
Số 2: 10
Số 3: -1
→ Gặp số âm, DỪNG LẠI (break)
Tổng (break): 15

Nhập 10 số nguyên (số âm sẽ BỎ QUA - continue):
Số 1: 5
Số 2: 10
Số 3: -1
→ Số âm, BỎ QUA (continue)
Số 4: 20
...
Tổng (continue): 35

Lưu ý quan trọng

  • break và continue chỉ ảnh hưởng đến vòng lặp gần nhất (innermost loop).
  • Để thoát/bỏ qua vòng lặp ngoài, dùng goto label (không khuyến khích) hoặc refactor thành method trả về bool.
  • Trong foreach: break thoát hẳn, continue sang phần tử tiếp theo.
  • return trong method cũng thoát vòng lặp (và method).

So sánh tóm tắt

Câu lệnhHành độngTiếp theo thực thi
breakThoát vòng lặpCâu lệnh sau vòng lặp
continueBỏ qua lần lặp nàyBước cập nhật (i++), rồi kiểm tra điều kiện
returnThoát methodCaller (người gọi)