ลูปในภาษาซี: For, While, Do Whileping ประโยคตัวอย่าง

⚡ สรุปอย่างชาญฉลาด

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

  • 🔁 กายวิภาคของวงจร: ลูปในภาษา C ทุกลูปจะจับคู่ชุดคำสั่งที่ทำซ้ำกับเงื่อนไขควบคุมซึ่งจะกำหนดว่าการทำซ้ำจะหยุดเมื่อใด
  • 🚪 จุดเข้าเทียบกับจุดออก: ลูป while และ for ที่ควบคุมด้วยการเข้าจะตรวจสอบเงื่อนไขก่อน ในขณะที่ลูป do-while ที่ควบคุมด้วยการออกจะทำงานในส่วนของตัวเองเพียงครั้งเดียวเสมอ
  • ♻️ ลูป While: ลูป while จะตรวจสอบเงื่อนไขก่อนการวนซ้ำแต่ละครั้ง ซึ่งเหมาะสำหรับกรณีที่ไม่ทราบจำนวนรอบการวนซ้ำล่วงหน้า
  • 🔂 ลูป Do-while: ลูป do-while จะทำงานในส่วนของเนื้อหา (body) ก่อนที่จะทำการทดสอบ ดังนั้นจึงรับประกันได้ว่าจะมีการทำงานเพียงครั้งเดียว แม้ว่าเงื่อนไขจะเป็นเท็จก็ตาม
  • 🔢 สำหรับลูป: ลูป for รวมการเริ่มต้น เงื่อนไข และการอัปเดตไว้ในบรรทัดเดียว เหมาะอย่างยิ่งสำหรับการนับในช่วงที่กำหนดไว้
  • หยุดพักแล้วดำเนินการต่อ: คำสั่ง break จะออกจากลูปทันที ในขณะที่คำสั่ง continue จะข้ามไปยังรอบถัดไปโดยไม่ต้องออกจากลูป

ลูปในภาษาซี: For, While, Do Whileping งบ

ลูปใน C คืออะไร?

ห้องน้ำping คำสั่งในภาษา C จะทำซ้ำลำดับของคำสั่งหลายๆ ครั้งจนกว่าเงื่อนไขที่กำหนดจะเป็นเท็จ ลูปในภาษา C ประกอบด้วยสองส่วน คือ ส่วนเนื้อหาของลูปและคำสั่งควบคุม คำสั่งควบคุมคือการรวมกันของเงื่อนไขต่างๆ ที่สั่งให้ส่วนของลูปทำงานต่อไปจนกว่าเงื่อนไขที่กำหนดจะเป็นเท็จ จุดประสงค์ของลูปในภาษา C คือการทำซ้ำโค้ดเดิมหลายๆ ครั้ง

ประเภทของลูปในภาษาซี

ขึ้นอยู่กับตำแหน่งของคำสั่งควบคุมในโปรแกรม looping คำสั่งในภาษาซีแบ่งออกเป็นสองประเภท:

  1. วงจรควบคุมการเข้า
  2. วงจรควบคุมทางออก

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

ในลูปควบคุมการออก (exit controlled loop) จะมีการตรวจสอบเงื่อนไขหลังจากที่ส่วนเนื้อหาของลูปทำงานเสร็จสิ้นแล้ว เรียกอีกอย่างว่าลูปตรวจสอบหลัง (post-checking loop)

ประเภทของลูปในภาษาซี

วงตัวอย่าง

เงื่อนไขการควบคุมต้องถูกกำหนดและระบุไว้อย่างชัดเจน มิฉะนั้นลูปจะทำงานซ้ำไปเรื่อยๆ อย่างไม่มีที่สิ้นสุด ลูปที่ไม่หยุดทำงานและประมวลผลคำสั่งซ้ำๆ เรียกว่าลูปอนันต์ หรือเรียกอีกอย่างว่า “ลูปไม่สิ้นสุด” ต่อไปนี้คือลักษณะบางประการของลูปอนันต์:

  1. ไม่มีการระบุเงื่อนไขการยุติการทำงาน
  2. เงื่อนไขที่ระบุไว้ไม่เคยเกิดขึ้นจริง

เงื่อนไขที่ระบุจะกำหนดว่าจะดำเนินการกับเนื้อหาลูปหรือไม่

ภาษาการเขียนโปรแกรม 'C' มีโครงสร้างลูปสามประเภท:

  1. ลูป while
  2. ลูป do-while
  3. ลูป 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

ในขณะที่วนซ้ำในการเขียนโปรแกรม 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;
}
  1. ค่าเริ่มต้นของ for loop จะดำเนินการเพียงครั้งเดียว
  2. เงื่อนไขคือ นิพจน์บูลีนที่ทดสอบและเปรียบเทียบตัวนับกับค่าคงที่หลังจากแต่ละรอบการทำงาน นั่นคือ หยุดping ลูป for เมื่อส่งค่า false กลับมา
  3. การเพิ่มขึ้น/การลดลงจะเพิ่ม (หรือลดลง) ตัวนับตามค่าที่ตั้งไว้

โปรแกรมต่อไปนี้แสดงตัวอย่างการวนซ้ำ 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 ยังมีคำสั่งอีกสองคำสั่งที่เปลี่ยนแปลงวิธีการทำงานของลูปจากภายใน

แบ่งคำสั่งใน 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 จะถูกข้ามไป

เลือกวงไหน?

การเลือกวงจรเป็นงานที่ยากสำหรับโปรแกรมเมอร์เสมอ โดยในการเลือกวงจร ให้ทำตามขั้นตอนต่อไปนี้:

  1. วิเคราะห์ปัญหาและตรวจสอบว่าต้องมีการทดสอบก่อนหรือหลังการทดสอบ
  2. หากจำเป็นต้องทำการทดสอบก่อน ให้ใช้ลูป while หรือ for
  3. หากจำเป็นต้องมีการทดสอบภายหลัง ให้ใช้ do- While loop

คำถามที่พบบ่อย

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

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

ภาษา C มาตรฐานไม่มีลูป for-each หรือลูปแบบช่วงค่าในตัวเหมือนกับภาษาอื่น C++ or Pythonคุณวนลูปผ่านอาร์เรย์ด้วยตนเองโดยใช้ลูป for หรือ while โดยใช้ดัชนีหรือตัวชี้เพื่อวนไปทีละองค์ประกอบ

ไม่ คำสั่ง goto ทำการกระโดดไปยังบรรทัดที่กำหนดโดยไม่มีเงื่อนไข และสามารถเลียนแบบคำสั่ง loo ได้pingแต่มันไม่ใช่ลูปที่มีโครงสร้าง การใช้ for, while หรือ do-while จะทำให้โค้ดอ่านง่ายขึ้นมาก

ตัวดำเนินการคอมมาช่วยให้ลูป for สามารถจัดการตัวแปรหลายตัวพร้อมกันได้ ในลูป for (x = 0, y = n; x < y; x++, y–) ทั้งส่วนการเริ่มต้นและการอัปเดตจะรันนิพจน์สองตัวในแต่ละรอบ

ใช่แล้ว รวมเงื่อนไขต่างๆ โดยใช้ตัวดำเนินการตรรกะ AND (&&) และ OR (||) ภายในวงเล็บ ตัวอย่างเช่น while (a < 10 && b > 0) keeps looping เฉพาะในขณะที่เงื่อนไขทั้งสองยังคงเป็นจริงอยู่เท่านั้น

ใช่แล้ว ผู้ช่วยเขียนโค้ด AI สามารถร่างลูป while, do-while และ for จากคำอธิบายธรรมดา ตรวจจับข้อผิดพลาดแบบ off-by-one และแจ้งเตือนเงื่อนไขที่อาจทำงานไปเรื่อยๆ อย่างไม่มีที่สิ้นสุดได้ Revการตรวจสอบผลลัพธ์ยังคงมีความสำคัญ เนื่องจากตรรกะที่สร้างขึ้นนั้นไม่ถูกต้องเสมอไป

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

สรุปโพสต์นี้ด้วย: