การใช้ Break และ Continue ใน For Loop (C#)
break และ continue ใช้ควบคุมการทำงานของ Loop ให้ยืดหยุ่นขึ้น
Break Statement
ออกจาก Loop ทันที (Terminate the loop)
for (int i = 1; i <= 10; i++)
{
int input = Convert.ToInt32(Console.ReadLine());
if (input < 0)
{
break; // ออกจาก Loop ทันทีเมื่อเจอตัวเลขติดลบ
}
sum += input;
}
Continue Statement
ข้ามรอบปัจจุบัน ไปรอบถัดไปทันที (Skip current iteration)
for (int i = 1; i <= 10; i++)
{
int input = Convert.ToInt32(Console.ReadLine());
if (input < 0)
{
continue; // ข้ามการบวก ต่อรอบถัดไปเลย
}
sum += input;
}
ตัวอย่างครบถ้วน: รับค่าจนกว่าจะกด 0
using System;
class Program
{
static void Main()
{
int sum = 0;
Console.WriteLine("Enter numbers (0 to stop):");
for (int i = 1; ; i++) // Infinite loop
{
Console.Write($"#{i}: ");
string input = Console.ReadLine();
if (!int.TryParse(input, out int num))
{
Console.WriteLine("Invalid input!");
continue; // ข้ามรอบนี้
}
if (num == 0)
break; // ออกจาก Loop
sum += num;
}
Console.WriteLine($"Sum = {sum}");
}
}
ผลลัพธ์ตัวอย่าง
Enter numbers (0 to stop):
#1: 10
#2: 20
#3: -5
#4: 30
#5: 0
Sum = 60
สรุปความแตกต่าง
| คำสั่ง | พฤติกรรม | ใช้เมื่อไหร่ |
|---|---|---|
break | ออกจาก Loop ทั้งหมด | เจอเงื่อนไขหยุดทำงาน (พบค่าที่ต้องการ, Error, Sentinel value) |
continue | ข้ามรอบนี้ ไปรอบต่อไป | ข้ามข้อมูลที่ไม่ถูกต้อง/ไม่ต้องการประมวลผล |