วนซ้ำใน 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

ในขณะที่วนอยู่ในC
ในขณะที่วนซ้ำในการเขียนโปรแกรม C
  1. เราได้เตรียมใช้งานตัวแปรชื่อ num ด้วยค่า 1 เราจะพิมพ์จาก 1 ถึง 10 ดังนั้นตัวแปรจึงถูกเตรียมใช้งานด้วยค่า 1 หากคุณต้องการพิมพ์จาก 0 ให้กำหนดค่า 0 ในระหว่างการเริ่มต้น
  2. ในชั่วขณะหนึ่ง เราได้จัดเตรียมเงื่อนไข (num<=10) ซึ่งหมายความว่าลูปจะดำเนินการกับเนื้อความจนกระทั่งค่า num กลายเป็น 10 หลังจากนั้น ลูปจะถูกยกเลิก และการควบคุมจะตกอยู่นอกลูป
  3. ในเนื้อหาของลูป เรามีฟังก์ชันการพิมพ์เพื่อพิมพ์ตัวเลขและการดำเนินการเพิ่มเพื่อเพิ่มค่าต่อการดำเนินการของลูป ค่าเริ่มต้นของ 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 วนซ้ำใน C
Do-While Loop ในการเขียนโปรแกรม C
  1. ขั้นแรก เราได้กำหนดค่าเริ่มต้นให้กับตัวแปร 'num' ด้วยค่า 1 จากนั้นเราจึงเขียนลูป do- While
  2. ในการวนซ้ำ เรามีฟังก์ชัน print ที่จะพิมพ์อนุกรมโดยการคูณค่า num ด้วย 2
  3. หลังจากการเพิ่มแต่ละครั้ง ค่าของ num จะเพิ่มขึ้น 1 และจะถูกพิมพ์บนหน้าจอ
  4. ในตอนแรก ค่าของ 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

สำหรับการวนซ้ำใน C
สำหรับลูปในการเขียนโปรแกรม C
  1. เราได้ประกาศก ตัวแปร ของชนิดข้อมูล int เพื่อเก็บค่า
  2. ใน for loop ในส่วนการกำหนดค่าเริ่มต้น เราได้กำหนดค่า 1 ให้กับหมายเลขตัวแปร ในส่วนของเงื่อนไข เราได้ระบุเงื่อนไขของเราแล้วตามด้วยส่วนที่เพิ่มขึ้น
  3. ในเนื้อหาของลูป เรามีฟังก์ชัน 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

จดหมายข่าว Guru99 รายวัน

เริ่มต้นวันใหม่ของคุณด้วยข่าวสาร AI ล่าสุดและสำคัญที่สุดที่ส่งมอบทันที