นี่คือความแตกต่างพื้นฐานของ do-while loop และ while loop ใน C หรือ C++
While loop ใน C ทำซ้ำคำสั่งเป้าหมายตราบใดที่เงื่อนไขเป็นจริง ไวยากรณ์:
while(condition) {
statement(s);
}
statement(s) อาจเป็นคำสั่งเดียวหรือบล็อก condition เป็นนิพจน์ใดๆ true คือค่าไม่เป็นศูนย์ ลูปทำซ้ำขณะ condition จริง เมื่อ condition เท็จ ควบคุมโปรแกรมไปบรรทัดถัดไปหลังลูป
ตัวอย่าง While Loop
#include <stdio.h>
int main() {
int a = 10;
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 ต่างจาก for และ while ที่ตรวจสอบเงื่อนไขที่ด้านบน do-while ตรวจสอบที่ด้านล่าง
Do-while loop คล้าย while loop แต่ do-while รับประกันว่ารันอย่างน้อย 1 ครั้ง
do {
statement(s);
} while(condition);
เงื่อนไขอยู่ท้ายลูป ดังนั้นคำสั่งในลูปรัน 1 ครั้งก่อนทดสอบเงื่อนไข ถ้าเงื่อนไขจริง ควบคุมกระโดดกลับไป do รันอีก ทำซ้ำจนเงื่อนไขเท็จ
ตัวอย่าง Do-While Loop
#include <stdio.h>
int main() {
int a = 10;
do {
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
สรุปความแตกต่างในตาราง:
| While Loop | Do-While Loop |
|---|---|
| Entry controlled loop ตรวจสอบเงื่อนไขก่อนเข้า loop | Exit control loop ตรวจสอบเงื่อนไขเมื่อออกจาก loop |
| While loop อาจรัน 0 หรือมากกว่า ครั้ง | Do-While รันมากกว่า 1 ครั้ง แต่น้อยที่สุด 1 ครั้ง |
| ตัวแปรเงื่อนไขต้อง initialize ก่อนเข้า loop | ตัวแปรเงื่อนไขอาจ initialize ใน loop ได้ |
while(condition){
//statement
} |
do{
//statement
}while(condition); |