Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ทำ…while loop กับ while loop ใน C/C++


เราจะมาดูกันว่าอะไรคือความแตกต่างพื้นฐานของ do-while loop และ while loop ใน C หรือ C++

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

while(condition) {
   statement(s);
}

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

เมื่อเงื่อนไขกลายเป็นเท็จ ตัวควบคุมโปรแกรมจะส่งผ่านไปยังบรรทัดต่อจากลูปทันที

ตัวอย่าง

#include <stdio.h>
int main () {
   int a = 10; // Local variable declaration:
   do { // do loop execution
      printf("value of a: %d\n", a);
      a = a + 1;
   } while( a < 20 );
   return 0;
}

ผลลัพธ์

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19

ทีนี้มาดูลูป do-while กัน

ไม่เหมือนกับ for และ while loops ซึ่งทดสอบเงื่อนไขลูปที่ด้านบนของลูป do...while ตรวจสอบเงื่อนไขที่ด้านล่างของลูป

do...while loop คล้ายกับ while loop ยกเว้น do...while loop รับประกันว่าจะดำเนินการอย่างน้อยหนึ่งครั้ง

do {
   statement(s);
}
while( condition );

สังเกตว่านิพจน์เงื่อนไขปรากฏขึ้นที่ส่วนท้ายของลูป ดังนั้นคำสั่งในลูปจะดำเนินการหนึ่งครั้งก่อนที่จะทดสอบเงื่อนไข

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

ตัวอย่าง

#include <stdio.h>
int main () {
   /* local variable definition */
   int a = 10;
   /* while loop execution */
   while( a < 20 ) {
      printf("value of a: %d\n", a);
      a++;
   }
   return 0;
}

ผลลัพธ์

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19

ดังนั้นความแตกต่างจึงสรุปได้ในตารางต่อไปนี้ -

ขณะวนซ้ำ Do-While Loop
นี่คือรายการวนรอบควบคุม เช็คสภาพก่อนเข้าลูป นี่คือ exit control loop ตรวจสอบสภาพเมื่อออกจากลูป
การวนซ้ำ while อาจรันศูนย์หรือมากกว่าครั้ง Do-While อาจทำงานมากกว่าหนึ่งครั้งแต่อย่างน้อยหนึ่งครั้ง
ตัวแปรของเงื่อนไขการทดสอบจะต้องเริ่มต้นก่อนที่จะเข้าสู่ลูป ตัวแปรสำหรับเงื่อนไขการวนซ้ำอาจเริ่มต้นในลูปได้เช่นกัน
while(condition){
   //statement
}
do{
   //statement
}while(condition);