วนซ้ำใน C: For, While, Do While คำสั่งวนซ้ำ [ตัวอย่าง]
ลูปใน C คืออะไร?
คำสั่งวนซ้ำใน C ดำเนินการตามลำดับของคำสั่งหลายๆ ครั้งจนกระทั่งเงื่อนไขที่ระบุกลายเป็นเท็จ การวนซ้ำในภาษา C ประกอบด้วยสองส่วน ส่วนเนื้อความของลูปและคำสั่งควบคุม คำสั่งควบคุมคือการรวมกันของเงื่อนไขบางอย่างที่สั่งให้เนื้อความของลูปดำเนินการจนกว่าเงื่อนไขที่ระบุจะกลายเป็นเท็จ วัตถุประสงค์ของลูป C คือการทำซ้ำโค้ดเดิมหลาย ๆ ครั้ง
ประเภทของลูปในภาษาซี
ขึ้นอยู่กับตำแหน่งของคำสั่งควบคุมในโปรแกรม คำสั่งวนซ้ำในภาษา C แบ่งออกเป็นสองประเภท:
1. วงควบคุมรายการ
2. ออกจากลูปควบคุม
ใน วงควบคุมการเข้าใน C มีการตรวจสอบเงื่อนไขก่อนที่จะดำเนินการกับเนื้อความของลูป เรียกอีกอย่างว่าวงจรตรวจสอบล่วงหน้า
ใน ออกจากลูปควบคุมจะมีการตรวจสอบเงื่อนไขหลังจากดำเนินการกับเนื้อความของลูป เรียกอีกอย่างว่าลูปหลังการตรวจสอบ

เงื่อนไขการควบคุมจะต้องได้รับการกำหนดและระบุอย่างชัดเจน มิฉะนั้น ลูปจะดำเนินการซ้ำไม่สิ้นสุด ลูปที่ไม่หยุดดำเนินการและประมวลผลคำสั่งซ้ำๆ จะถูกเรียกว่า วนไม่มีสิ้นสุด- การวนซ้ำไม่สิ้นสุดเรียกอีกอย่างว่า “วนซ้ำไม่มีที่สิ้นสุดต่อไปนี้คือลักษณะบางประการของวงจรอนันต์:
1. ไม่มีการระบุเงื่อนไขการสิ้นสุด
2. เงื่อนไขที่กำหนดไม่เคยตรง
เงื่อนไขที่ระบุจะกำหนดว่าจะดำเนินการกับเนื้อหาลูปหรือไม่
ภาษาการเขียนโปรแกรม 'C' มีโครงสร้างลูปสามประเภท:
1. วง while
2. วงทำในขณะที่
3. การวนซ้ำ
ซีเนียร์เลขที่ | ประเภทห่วง | Descriptไอออน |
---|---|---|
1. | ในขณะที่วนซ้ำ | ในขณะที่วนซ้ำ เงื่อนไขจะถูกประเมินก่อนที่จะประมวลผลเนื้อความของลูป หากเงื่อนไขเป็นจริง จากนั้นร่างกายของลูปก็จะถูกดำเนินการเท่านั้น |
2. | ทำในขณะที่วนซ้ำ | ในลูป do… While เงื่อนไขจะถูกดำเนินการตามหลังเนื้อความของลูปเสมอ เรียกอีกอย่างว่าลูปควบคุมทางออก |
3. | สำหรับ Loop | ในการวนซ้ำ for ค่าเริ่มต้นจะดำเนินการเพียงครั้งเดียว จากนั้นเงื่อนไขจะทดสอบและเปรียบเทียบตัวนับกับค่าคงที่หลังจากการวนซ้ำแต่ละครั้ง โดยจะหยุดการวนซ้ำ for เมื่อมีการส่งคืนค่า false |
ในขณะที่วนอยู่ในC
ลูป While เป็นโครงสร้างการวนซ้ำที่ตรงไปตรงมาที่สุด ไวยากรณ์ของลูป While ในภาษาการเขียนโปรแกรม C เป็นดังนี้:
ไวยากรณ์ของ While Loop ใน C
while (condition) { statements; }
มันเป็นวงควบคุมรายการ ในขณะที่วนซ้ำ เงื่อนไขจะถูกประเมินก่อนที่จะประมวลผลเนื้อความของลูป หากเงื่อนไขเป็นจริง จากนั้นร่างกายของลูปก็จะถูกดำเนินการเท่านั้น หลังจากดำเนินการเนื้อความของลูปแล้ว การควบคุมจะย้อนกลับไปที่จุดเริ่มต้นอีกครั้ง และตรวจสอบเงื่อนไขว่าเป็นจริงหรือไม่ กระบวนการเดียวกันนี้จะดำเนินการจนกว่าเงื่อนไขจะกลายเป็นเท็จ เมื่อเงื่อนไขกลายเป็นเท็จ การควบคุมจะออกจากลูป
หลังจากออกจากลูป ตัวควบคุมจะไปที่คำสั่งที่อยู่หลังลูปทันที เนื้อความของลูปสามารถมีได้มากกว่าหนึ่งคำสั่ง หากมีเพียงคำสั่งเดียว วงเล็บปีกกาก็ไม่จำเป็น ถือเป็นแนวปฏิบัติที่ดีที่จะใช้วงเล็บปีกกาแม้ว่าเราจะมีข้อความเดียวในร่างกายก็ตาม
ในการวนซ้ำ while หากเงื่อนไขไม่เป็นความจริง เนื้อความของลูปจะไม่ถูกดำเนินการแม้แต่ครั้งเดียว มันแตกต่างออกไปใน do while loop ซึ่งเราจะเห็นเร็วๆ นี้
โปรแกรมต่อไปนี้แสดงตัวอย่างการวนซ้ำแบบ while ในการเขียนโปรแกรม C:
#include<stdio.h> #include<conio.h> int main() { int num=1; //initializing the variable while(num<=10) //while loop with condition { printf("%d\n",num); num++; //incrementing operation } return 0; }
Output:
1 2 3 4 5 6 7 8 9 10
โปรแกรมด้านบนแสดงตัวอย่างการใช้ลูป while ในโปรแกรมด้านบนนี้ เราได้พิมพ์ชุดตัวเลขตั้งแต่ 1 ถึง 10 โดยใช้ลูป while

- เราได้เตรียมใช้งานตัวแปรชื่อ num ด้วยค่า 1 เราจะพิมพ์จาก 1 ถึง 10 ดังนั้นตัวแปรจึงถูกเตรียมใช้งานด้วยค่า 1 หากคุณต้องการพิมพ์จาก 0 ให้กำหนดค่า 0 ในระหว่างการเริ่มต้น
- ในชั่วขณะหนึ่ง เราได้จัดเตรียมเงื่อนไข (num<=10) ซึ่งหมายความว่าลูปจะดำเนินการกับเนื้อความจนกระทั่งค่า num กลายเป็น 10 หลังจากนั้น ลูปจะถูกยกเลิก และการควบคุมจะตกอยู่นอกลูป
- ในเนื้อหาของลูป เรามีฟังก์ชันการพิมพ์เพื่อพิมพ์ตัวเลขและการดำเนินการเพิ่มเพื่อเพิ่มค่าต่อการดำเนินการของลูป ค่าเริ่มต้นของ num คือ 1 หลังจากการดำเนินการจะกลายเป็น 2 และระหว่างการดำเนินการครั้งต่อไปจะกลายเป็น 3 กระบวนการนี้จะดำเนินต่อไปจนกว่าค่าจะกลายเป็น 10 จากนั้นจะพิมพ์ชุดข้อมูลบนคอนโซลและยุติลูป
\n ใช้เพื่อจุดประสงค์ในการจัดรูปแบบ ซึ่งหมายความว่าค่าจะถูกพิมพ์ในบรรทัดใหม่
Do-While วนซ้ำใน C
การวนซ้ำ do… While ใน C นั้นคล้ายคลึงกับการวนซ้ำ while ยกเว้นว่าเงื่อนไขจะถูกดำเนินการเสมอหลังจากเนื้อความของลูป เรียกอีกอย่างว่าลูปควบคุมทางออก
โครงสร้างของลูป do while ในภาษาการเขียนโปรแกรม C เป็นดังนี้:
ไวยากรณ์ของ Do-While Loop ใน C
do { statements } while (expression);
ตามที่เราเห็นในลูป while เนื้อหาจะถูกดำเนินการก็ต่อเมื่อเงื่อนไขเป็นจริง ในบางกรณี เราต้องดำเนินการเนื้อหาในลูปอย่างน้อยหนึ่งครั้ง แม้ว่าเงื่อนไขจะเป็นเท็จก็ตาม การดำเนินการประเภทนี้สามารถทำได้โดยใช้ลูป do-while
ในลูป do-while ส่วนของลูปจะถูกดำเนินการอย่างน้อยหนึ่งครั้งเสมอ หลังจากดำเนินการส่วนเนื้อหาแล้ว จะตรวจสอบเงื่อนไข หากเงื่อนไขเป็นจริง จะดำเนินการส่วนเนื้อหาของลูปอีกครั้ง มิฉะนั้น การควบคุมจะถูกโอนออกจากลูป
คล้ายกับ while loop เมื่อการควบคุมออกจากลูป คำสั่งจะอยู่ทันทีหลังจากที่ลูปถูกดำเนินการ
ข้อแตกต่างที่สำคัญระหว่าง while และ do- While loop คือ in while loop the while จะถูกเขียนไว้ที่จุดเริ่มต้น ใน do- While loop เงื่อนไข while จะถูกเขียนที่ส่วนท้ายและสิ้นสุดด้วยเครื่องหมายเซมิโคลอน (;)
โปรแกรมลูปต่อไปนี้ในภาษา C แสดงการทำงานของลูป do-while:
ด้านล่างนี้คือ do- While loop ในตัวอย่าง C เพื่อพิมพ์ตารางหมายเลข 2:
#include<stdio.h> #include<conio.h> int main() { int num=1; //initializing the variable do //do-while loop { printf("%d\n",2*num); num++; //incrementing operation }while(num<=10); return 0; }
Output:
2 4 6 8 10 12 14 16 18 20
ในตัวอย่างข้างต้น เราได้พิมพ์ตารางสูตรคูณ 2 โดยใช้ do- While loop มาดูกันว่าโปรแกรมสามารถพิมพ์ซีรีย์ได้อย่างไร

- ขั้นแรก เราได้กำหนดค่าเริ่มต้นให้กับตัวแปร 'num' ด้วยค่า 1 จากนั้นเราจึงเขียนลูป do- While
- ในการวนซ้ำ เรามีฟังก์ชัน print ที่จะพิมพ์อนุกรมโดยการคูณค่า num ด้วย 2
- หลังจากการเพิ่มแต่ละครั้ง ค่าของ num จะเพิ่มขึ้น 1 และจะถูกพิมพ์บนหน้าจอ
- ในตอนแรก ค่าของ num คือ 1 ในเนื้อความของลูป ฟังก์ชันการพิมพ์จะถูกดำเนินการในลักษณะนี้: 2*num โดยที่ num=1 จากนั้น 2*1=2 ดังนั้นค่าที่สองจะถูกพิมพ์ สิ่งนี้จะดำเนินต่อไปจนกระทั่งค่า num กลายเป็น 10 หลังจากการวนซ้ำนั้นจะถูกยกเลิก และคำสั่งที่อยู่หลังการวนซ้ำทันทีจะถูกดำเนินการ ในกรณีนี้ให้คืนค่า 0
สำหรับการวนซ้ำใน C
for loop เป็นโครงสร้างลูปที่มีประสิทธิภาพมากกว่าในการเขียนโปรแกรม 'C' โครงสร้างทั่วไปของไวยากรณ์ for loop ในภาษา C เป็นดังนี้:
ไวยากรณ์ของ For Loop ใน C
for (initial value; condition; incrementation or decrementation ) { statements; }
- ค่าเริ่มต้นของ for loop จะดำเนินการเพียงครั้งเดียว
- เงื่อนไขเป็นนิพจน์บูลีนที่ทดสอบและเปรียบเทียบตัวนับกับค่าคงที่หลังจากการวนซ้ำแต่ละครั้ง โดยหยุดการวนซ้ำ for เมื่อมีการส่งคืนค่า false
- การเพิ่มขึ้น/การลดลงจะเพิ่ม (หรือลดลง) ตัวนับตามค่าที่ตั้งไว้
โปรแกรมต่อไปนี้แสดงตัวอย่างการวนซ้ำ for ในการเขียนโปรแกรม C:
#include<stdio.h> int main() { int number; for(number=1;number<=10;number++) //for loop to print 1-10 numbers { printf("%d\n",number); //to print the number } return 0; }
Output:
1 2 3 4 5 6 7 8 9 10
โปรแกรมด้านบนจะพิมพ์ชุดตัวเลขตั้งแต่ 1-10 โดยใช้ for loop

- เราได้ประกาศก ตัวแปร ของชนิดข้อมูล int เพื่อเก็บค่า
- ใน for loop ในส่วนการกำหนดค่าเริ่มต้น เราได้กำหนดค่า 1 ให้กับหมายเลขตัวแปร ในส่วนของเงื่อนไข เราได้ระบุเงื่อนไขของเราแล้วตามด้วยส่วนที่เพิ่มขึ้น
- ในเนื้อหาของลูป เรามีฟังก์ชัน print เพื่อพิมพ์ตัวเลขบนบรรทัดใหม่ในคอนโซล เราเก็บค่า 2 ไว้ใน number หลังจากวนซ้ำครั้งแรก ค่าจะเพิ่มขึ้นและกลายเป็น 2 ตอนนี้ตัวแปร number มีค่า 10 แล้ว เงื่อนไขจะถูกตรวจสอบซ้ำ และเนื่องจากเงื่อนไขเป็นจริง ลูปจะถูกดำเนินการ และจะพิมพ์ 1 บนหน้าจอ ลูปนี้จะดำเนินการต่อไปจนกว่าค่าของตัวแปรจะกลายเป็น 10 หลังจากนั้น ลูปจะสิ้นสุดลง และจะพิมพ์ชุด XNUMX-XNUMX บนหน้าจอ
ในภาษา C for loop สามารถมีได้หลายนิพจน์โดยคั่นด้วยเครื่องหมายจุลภาคในแต่ละส่วน
ตัวอย่างเช่น:
for (x = 0, y = num; x < y; i++, y--) { statements; }
นอกจากนี้ เราสามารถข้ามนิพจน์ค่าเริ่มต้น เงื่อนไข และ/หรือการเพิ่มขึ้นได้โดยการเพิ่มเครื่องหมายอัฒภาค
ตัวอย่างเช่น:
int i=0; int max = 10; for (; i < max; i++) { printf("%d\n", i); }
โปรดสังเกตว่าลูปสามารถซ้อนได้โดยมีลูปด้านนอกและลูปด้านใน สำหรับการวนซ้ำของวงนอกแต่ละครั้ง วงในจะทำซ้ำทั้งวง
พิจารณาตัวอย่างต่อไปนี้ที่มีเงื่อนไขหลายรายการในลูป for ซึ่งใช้ลูป for ซ้อนกันในการเขียนโปรแกรม C เพื่อส่งออกตารางการคูณ:
#include <stdio.h> int main() { int i, j; int table = 2; int max = 5; for (i = 1; i <= table; i++) { // outer loop for (j = 0; j <= max; j++) { // inner loop printf("%d x %d = %d\n", i, j, i*j); } printf("\n"); /* blank line between tables */ }}
Output:
1 x 0 = 0 1 x 1 = 1 1 x 2 = 2 1 x 3 = 3 1 x 4 = 4 1 x 5 = 5 2 x 0 = 0 2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8 2 x 5 = 10
การซ้อนลูป for สามารถทำได้ทุกระดับ การซ้อนลูปควรมีการเยื้องที่เหมาะสมเพื่อให้สามารถอ่านโค้ดได้ ใน C บางเวอร์ชัน การซ้อนลูปจำกัดอยู่ที่ 15 ลูป แต่บางเวอร์ชันมีมากกว่านั้น
ลูปแบบซ้อนส่วนใหญ่จะใช้ในแอปพลิเคชันอาเรย์ ซึ่งเราจะเห็นในบทช่วยสอนเพิ่มเติม
แบ่งคำสั่งใน C
คำสั่งแบ่งจะใช้เป็นหลักใน สลับคำสั่ง- นอกจากนี้ยังมีประโยชน์สำหรับการหยุดการวนซ้ำทันทีอีกด้วย
เราพิจารณาโปรแกรมต่อไปนี้ซึ่งแนะนำการหยุดพักเพื่อออกจากลูป while:
#include <stdio.h> int main() { int num = 5; while (num > 0) { if (num == 3) break; printf("%d\n", num); num--; }}
Output:
5 4
คำชี้แจงต่อใน C
เมื่อคุณต้องการข้ามไปยังการวนซ้ำครั้งถัดไปแต่ยังคงอยู่ในลูป คุณควรใช้คำสั่ง Continue
ตัวอย่างเช่น:
#include <stdio.h> int main() { int nb = 7; while (nb > 0) { nb--; if (nb == 5) continue; printf("%d\n", nb); }}
Output:
6 4 3 2 1
ดังนั้นค่า 5 จะถูกข้ามไป
เลือกวงไหน?
การเลือกวงจรเป็นงานที่ยากสำหรับโปรแกรมเมอร์เสมอ โดยในการเลือกวงจร ให้ทำตามขั้นตอนต่อไปนี้:
- วิเคราะห์ปัญหาและตรวจสอบว่าต้องมีการทดสอบก่อนหรือหลังการทดสอบ
- หากจำเป็นต้องมีการทดสอบล่วงหน้า ให้ใช้ชั่วครู่หรือเป็นการวนซ้ำ
- หากจำเป็นต้องมีการทดสอบภายหลัง ให้ใช้ do- While loop
สรุป
- กำหนดลูปใน C: ลูปเป็นหนึ่งในแนวคิดหลักในทุกสิ่ง ภาษาโปรแกรม- การวนซ้ำในภาษา C ถูกนำมาใช้โดยใช้คำสั่งแบบมีเงื่อนไข
- บล็อกของคำสั่งควบคุมลูปในภาษา C จะถูกดำเนินการจำนวนครั้งจนกระทั่งเงื่อนไขกลายเป็นเท็จ
- ลูปในการเขียนโปรแกรม C มี 2 ประเภท: ควบคุมการเข้าและควบคุมทางออก
- รายการคำสั่งควบคุมลูปต่างๆ ในการเขียนโปรแกรม C: C ให้ 1) ในขณะที่ 2) do- while และ 3) สำหรับคำสั่งควบคุมลูป
- สำหรับและในขณะที่การเขียนโปรแกรมลูป C เป็นลูปควบคุมรายการในภาษา C
- Do- While เป็นลูปควบคุมการออกใน C