ลูปในภาษาซี: For, While, Do Whileping ประโยคตัวอย่าง
⚡ สรุปอย่างชาญฉลาด
ลูปในภาษาซีจะทำซ้ำชุดคำสั่งจนกว่าเงื่อนไขควบคุมจะเป็นเท็จ และภาษาซีมีโครงสร้างสามแบบ ได้แก่ ลูป while, ลูป do-while และลูป for สำหรับการทำซ้ำแบบควบคุมการเข้าและออก

ลูปใน C คืออะไร?
ห้องน้ำping คำสั่งในภาษา C จะทำซ้ำลำดับของคำสั่งหลายๆ ครั้งจนกว่าเงื่อนไขที่กำหนดจะเป็นเท็จ ลูปในภาษา C ประกอบด้วยสองส่วน คือ ส่วนเนื้อหาของลูปและคำสั่งควบคุม คำสั่งควบคุมคือการรวมกันของเงื่อนไขต่างๆ ที่สั่งให้ส่วนของลูปทำงานต่อไปจนกว่าเงื่อนไขที่กำหนดจะเป็นเท็จ จุดประสงค์ของลูปในภาษา C คือการทำซ้ำโค้ดเดิมหลายๆ ครั้ง
ประเภทของลูปในภาษาซี
ขึ้นอยู่กับตำแหน่งของคำสั่งควบคุมในโปรแกรม looping คำสั่งในภาษาซีแบ่งออกเป็นสองประเภท:
- วงจรควบคุมการเข้า
- วงจรควบคุมทางออก
ในลูปควบคุมการเข้าในภาษาซี จะมีการตรวจสอบเงื่อนไขก่อนที่จะดำเนินการส่วนของลูป เรียกอีกอย่างว่าลูปตรวจสอบล่วงหน้า
ในลูปควบคุมการออก (exit controlled loop) จะมีการตรวจสอบเงื่อนไขหลังจากที่ส่วนเนื้อหาของลูปทำงานเสร็จสิ้นแล้ว เรียกอีกอย่างว่าลูปตรวจสอบหลัง (post-checking loop)
วงตัวอย่าง
เงื่อนไขการควบคุมต้องถูกกำหนดและระบุไว้อย่างชัดเจน มิฉะนั้นลูปจะทำงานซ้ำไปเรื่อยๆ อย่างไม่มีที่สิ้นสุด ลูปที่ไม่หยุดทำงานและประมวลผลคำสั่งซ้ำๆ เรียกว่าลูปอนันต์ หรือเรียกอีกอย่างว่า “ลูปไม่สิ้นสุด” ต่อไปนี้คือลักษณะบางประการของลูปอนันต์:
- ไม่มีการระบุเงื่อนไขการยุติการทำงาน
- เงื่อนไขที่ระบุไว้ไม่เคยเกิดขึ้นจริง
เงื่อนไขที่ระบุจะกำหนดว่าจะดำเนินการกับเนื้อหาลูปหรือไม่
ภาษาการเขียนโปรแกรม 'C' มีโครงสร้างลูปสามประเภท:
- ลูป while
- ลูป do-while
- ลูป for
| ซีเนียร์เลขที่ | ประเภทห่วง | Descriptไอออน |
|---|---|---|
| 1. | ในขณะที่วนซ้ำ | ในขณะที่วนซ้ำ เงื่อนไขจะถูกประเมินก่อนที่จะประมวลผลเนื้อความของลูป หากเงื่อนไขเป็นจริง จากนั้นร่างกายของลูปก็จะถูกดำเนินการเท่านั้น |
| 2. | ทำในขณะที่วนซ้ำ | ในลูป do… While เงื่อนไขจะถูกดำเนินการตามหลังเนื้อความของลูปเสมอ เรียกอีกอย่างว่าลูปควบคุมทางออก |
| 3. | สำหรับ Loop | ในลูป for ค่าเริ่มต้นจะถูกดำเนินการเพียงครั้งเดียว จากนั้นเงื่อนไขจะทดสอบและเปรียบเทียบตัวนับกับค่าคงที่หลังจากแต่ละรอบการทำงาน แล้วจึงหยุดping ลูป for เมื่อส่งค่า false กลับมา |
ในขณะที่วนอยู่ในC
ลูป while เป็นลูปที่ตรงไปตรงมาที่สุดping โครงสร้าง. ไวยากรณ์ของลูป 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
ในขณะที่วนซ้ำในการเขียนโปรแกรม C
- เราได้เริ่มต้นใช้งานแล้ว ตัวแปร ตัวแปรชื่อ 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 มาดูกันว่าโปรแกรมสามารถพิมพ์ซีรีย์ได้อย่างไร
Do-While Loop ในการเขียนโปรแกรม C
- ขั้นแรก เราได้กำหนดค่าเริ่มต้นให้กับตัวแปร '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 จะดำเนินการเพียงครั้งเดียว
- เงื่อนไขคือ นิพจน์บูลีนที่ทดสอบและเปรียบเทียบตัวนับกับค่าคงที่หลังจากแต่ละรอบการทำงาน นั่นคือ หยุดping ลูป 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
สำหรับลูปในการเขียนโปรแกรม C
- เราได้ประกาศตัวแปรชนิดข้อมูล 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 ยังมีคำสั่งอีกสองคำสั่งที่เปลี่ยนแปลงวิธีการทำงานของลูปจากภายใน
แบ่งคำสั่งใน C
คำสั่งแบ่งจะใช้เป็นหลักใน สลับคำสั่งนอกจากนี้ยังใช้ได้ผลดีสำหรับการหยุดทันทีping ห่วง
เราพิจารณาโปรแกรมต่อไปนี้ซึ่งแนะนำการหยุดพักเพื่อออกจากลูป 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 จะถูกข้ามไป
เลือกวงไหน?
การเลือกวงจรเป็นงานที่ยากสำหรับโปรแกรมเมอร์เสมอ โดยในการเลือกวงจร ให้ทำตามขั้นตอนต่อไปนี้:
- วิเคราะห์ปัญหาและตรวจสอบว่าต้องมีการทดสอบก่อนหรือหลังการทดสอบ
- หากจำเป็นต้องทำการทดสอบก่อน ให้ใช้ลูป while หรือ for
- หากจำเป็นต้องมีการทดสอบภายหลัง ให้ใช้ do- While loop




