คำสั่งวนซ้ำ

ในบทนี้ คุณจะได้เรียนรู้เกี่ยวกับการใช้คำสั่งวนซ้ำเพื่อควบคุมโปรแกรม เช่น คำสั่ง while loop, do-while loop, for loop และ foreach loop

คำสั่งวนซ้ำ (loop statements) ถูกใช้เพื่อควบคุมโปรแกรมเพื่อให้โปรแกรมทำบางส่วนของโค้ดซ้ำๆ มีลูปหลายประเภทที่เราสามารถใช้ได้ในภาษา C# และคุณจะได้เรียนรู้มันทั้งหมด เราจะเริ่มต้นกับลูปที่ง่ายที่สุดคือ while loop

คำสั่ง While loop

คำสั่ง while loop นั้นเป็นคำสั่งวนซ้ำที่ง่ายที่สุดในภาษา C# โดยมีรูปแบบการใช้งานดังนี้

while (expression) {
statements
}

while loop นั้นจะใช้ในการทำซ้ำส่วนของโปรแกรมในขณะที่ expression เป็น true จนกว่า expression เป็น false โปรแกรมจะออกจาก while loop และทำงานต่อไปหลังจากลูป

ตัวอย่างการใช้ while loop ในภาษา C#

using System;

class WhileLoop
{
static void Main(string[] args)
{
int n = 1;
while (n <= 10)
{
Console.WriteLine("Loop " + n);
n++;
}
Console.WriteLine("Loop ended");
}
}

ในตัวอย่าง เป็นตัวอย่างในการใช้ while loop เพื่อนับเลข โดยโปรแกรมจะนับเริ่มจาก 1 ถึง 10 เราได้กำหนดค่าเริ่มต้นให้กับตัวนับเป็น 1 และ expression ของเราคือ n <= 10 นั่นหมายความว่าโปรแกรมจะทำงานในลูปของ while ตราบใดที่ค่าของตัวแปร n ยังน้อยกว่าหรือเท่ากับ 10 หลังจากนั้นมันจะออกจากลูป และแสดงข้อความ "Loop ended" บรรทัดสุดท้าย ในลูปก็จะแสดงค่าของ n และเพิ่มค่าขึ้นในแต่ละรอบโดยคำสั่ง n++ เพื่อไม่ให้โปรแกรมอยู่ในลูปตลอดไป

Loop 1
Loop 2
Loop 3
Loop 4
Loop 5
Loop 6
Loop 7
Loop 8
Loop 9
Loop 10
Loop ended

และนี่เป็นผลลัพธ์จากตัวอย่างการใช้ while loop เพื่อนับตัวเลข

คำสั่ง Do-while loop

do-while loop นั้นคล้ายกับ while loop ซึ่งมันสามารถใช้ทดแทนกันได้ โดยมีรูปแบบการใช้งานดังนี้

do {
statements
} while (expression) ;

สิ่งที่แตกต่างของ do-while loop คือการตรวจสอบ expression หลังจากการทำงานรอบแรกเสร็จสิ้น นั่นหมายความว่า do-while loop จะต้องทำงานอย่างน้อย 1 รอบ สังเกตุว่า expression จะอยู่ที่ตอน้ทายของลูป มาดูตัวอย่าง

using System;

class DoWhileLoop
{
static void Main(string[] args)
{
int n;

Console.WriteLine("Enter 0 to exit the loop");
do
{
Console.Write("Your number: ");
int.TryParse(Console.ReadLine(), out n);
Console.WriteLine("Number you entered is " + n);
} while (n != 0);

Console.WriteLine("Loop ended");
}
}

ในตัวอย่าง เป็นการใช้ do-while loop เพื่อถามให้ผู้ใช้ป้อนตัวเลข (0) เพื่อออกจากลูป ถ้าตัวเลขที่ใส่เข้ามานั้นไม่ใช่ศูนย์ โปรแกรมก็จะถามให้ใส่ใหม่เรื่อยไป และเมื่อใส่เลขศูนย์ มันทำให้ expression ของเราเป็น false และทำให้โปรแกรมออกจากลูป

Enter 0 to exit the loop
Your number: 2
Number you entered is 2
Your number: 3
Number you entered is 3
Your number: 5
Number you entered is 5
Your number: 10
Number you entered is 10
Your number: 0
Number you entered is 0
Loop ended

นี่เป็นผลลัพธ์ของตัวอย่างการใช้ do while loop เมื่อทดสอบรันโปรแกรมและป้อนตัวเลข

คำสั่ง For loop

for loop นั้นเป็นลูปที่ใช้ทำซ้ำคำสั่งหรือชุดของคำสั่งเป็นจำนวนรอบที่แน่นอน โดยมันมีรูปแบบในการใช้งานดังนี้

for (initialize; condition; iterator) {
statements
}

ในการใช้ for loop เราสามารถกำหนดค่าเริ่มต้น สร้างเงื่อนไข (expression) และทำการกำหนดการเพิ่มค่าหรือลดค่าของตัวทำซ้ำได้ก่อนที่ลูปจะเริ่มทำงาน มันจะมีประโยชน์ที่จะให้สะดวกเมื่อเรารู้จำนวนรอบที่แน่นอนในการวนซ้ำของโปรแกรม

using System;

class ForLoop
{
static void Main(string[] args)
{
for (int i = 1; i <= 10; i++)
{
Console.WriteLine(i);
}
}
}

ในตัวอย่างเป็นการใช้ for loop เพื่อแสดงตัวเลข 1 ถึง 10 เช่นกัน สังเกตุว่าการกำหนดค่าเริ่มต้น การสร้างเงื่อนไขและการเพิ่มค่าจะถูกใส่ไว้ที่ส่วนหัวของโปรแกรมที่เดียว อย่างไรก็ตาม มันก็เป็นแค่ทางเลือก และเราสามารถนำไปใส่ที่ใหม่ได้ถ้าหากต้องการ เหมือนตัวอย่างข้างล่างนี้

using System;

class ForLoop
{
static void Main(string[] args)
{
int i = 1;
for (; i <= 10; )
{
Console.WriteLine(i);
i++;
}
}
}

และข้างล่างนี่เป็นผลลัพธ์ของโปรแกรมทั้งสองที่ใช้ for loop จะเห็นว่ามันได้ผลลัพธ์เหมือน while loop ซึ่งลูปทั้งสองประเภทนี้ก็สามารถใช้ทดแทนกันได้เช่นกัน แต่อาจจะเขียนแตกต่างกันเล็กน้อย

1
2
3
4
5
6
7
8
9
10

คำสั่ง foreach loop

foreach loop นั้นจะใช้สำหรับวนซ้ำค่าในอาเรย์ ที่ทราบหรือไม่ทราบขนาด โดยลูปจะเริ่มอ่านค่าจากสมาชิกตัวแรกในอาเรย์ ไปจนถึงตัวสุดท้าย

using System;

class ForeachLoop
{
static void Main(string[] args)
{
int[] numbers = { 2, 4, -1, 5, 0, 8, 9 };
foreach (int i in numbers)
{
Console.WriteLine(i);
}
}
}

ในตัวอย่างเราได้สร้างอาเรย์ของตัวเลขแบบ integer ซึ่งมีสมาชิกทั้งหมด 8 ตัว ในการวนซ้ำแต่ละรอบ ค่าะเก็บไว้ที่ตัวแปร i แล้วก็แสดงผลออกทาง console

2
4
-1
5
0
8
9

และนี่เป็นตัวอย่างผลลัพธ์ของการใช้ foreach loop

คำสั่ง break

คำสั่ง break เพื่อบังคับให้ลูปสิ้นสุดการทำงานในทันที การหยุดการทำงานของลูปโดยการใช้คำสั่ง break มักจะสร้างให้กับเงื่อนไขบางอย่าง condition เพื่อทำให้โปรแกรมออกจากลูป มันสามารถใช้ได้กับลูปทุกประเภททั้ง while, do-while, for และ foreach loop

มาดูตัวอย่างการใช้คำสั่ง break

using System;

class ForLoop
{
static void Main(string[] args)
{
for (int i = 1; i <= 10; i++)
{
Console.WriteLine(i);
if (i == 5) break;
}
}
}

ในตัวอย่างโปรแกรมจะออกจากลูปเมื่อ i มีค่าเท่ากับ 5 มันไม่สำคัญว่าเงื่อนไขในลูปที่ i <= 10 จะเป็นจริงหรือไม่

1
2
3
4
5

และข้างบนเป็นผลลัพธ์ของตัวอย่างการใช้คำสัง break

คำสั่ง continue

คำสั่ง continue ใช้เพื่อข้ามการวนซ้ำรอบปัจจุบัน มันจะข้ามการทำงานคำสั่งทั้งหมดภายในลูปหลังจากคำสั่ง continue และไปเริ่มต้นรอบใหม่ มันสามารถใช้ได้กับลูปทุกประเภท

using System;

namespace ContinueStatement
{
class Program
{
static void Main(string[] args)
{
for (int i = 1; i <= 10; i++)
{
if (i % 2 == 0) continue;
Console.WriteLine(i);
}
}
}
}

ในตัวอย่างเราได้ใช้คำสั่ง continue เพื่อข้ามการแสดงผลของตัวเลขคู่ โดยคำสั่งจะทำงานเมื่อ i % 2 == 0 นั่นหมายความว่า i จะข้ามการแสดงผลไป

1
3
5
7
9

นี่เป็นฟลลัพธ์ตัวอย่างการใช้คำสั่ง continue

ในบทนี้ คุณได้เรียนรู้เกี่ยวกับลูปประเภทต่างๆ ที่ใช้ในการควบคุมโปรแกรมในสถานะการต่างกัน และรู้ว่าเมื่อไหร่ที่ควรจะใช้คำสั่ง break และคำสัง continue


บทความเกี่ยวกับ คำสั่งวนซ้ำ

คำสั่งควบคุม ในภาษา C

ในบทก่อนหน้า คุณได้เรียนรู้พื้นฐานของภาษา C ไปแล้ว ในบทนี้คุณจะได้เรียนรู้เกี่ยวกับการควบคุมการทำงานของโปรแกรมโดยใช้คำสั่งควบคุม ในภาษา C มีคำสั่งควบคุมหลายประเ...

คำสั่งควบคุม ในภาษา C++

ในบทก่อนหน้า คุณได้เรียนพื้นฐานของภาษา C++ ไปแล้ว ในบทนี้ คุณจะได้เรียนเกี่ยวกับการควบคุมโปรแกรมโดยการใช้คำสั่งควบคุม อย่างเช่น if, if else, switch, for, while...

คำสั่งวนซ้ำ ในภาษา Java

ในบทนี้ คุณจะได้เรียนรู้การควบคุมโปรแกรมโดยใช้คำสั่งวนซ้ำ เพื่อควบคุมโปรแกรมให้ทำงานซ้ำๆ ได้คำสั่งวนซ้ำ (loop statements) เป็นคำสั่งที่ทำให้คุณสามารถควบโปรแกรมใ...

คำสั่งวนซ้ำ ในภาษา Visual Basic

ในบทนี้ คุณจะได้เรียนรู้การควบคุมโปรแกรม โดยใช้คำสั่งวนซ้ำในภาษา Visual Basic ซึ่งในการเขียนโปรแกรมนั้น มันเป็นไปได้ที่โปรแกรมจะต้องมีการทำงานซ้ำๆ กัน โดยการทำง...

คำสั่งวนซ้ำ ในภาษา PHP

ในบทนี้ คุณจะได้เรียนรู้เกี่ยวกับคำสั่งวนซ้ำในภาษา PHP ซึ่งประกอบไปด้วยคำสั่ง While Do While และ For loop ซึ่งเป็นคำสั่งที่ใช้ในการควบคุมโปรแกรมให้ทำงานในรูปแบบ...