C++ ทำ...ในขณะที่วนซ้ำกับตัวอย่าง
do- while loop คืออะไร?
do- While วนซ้ำส่วนของ C++ โปรแกรมหลายครั้ง ในลูป do- While นิพจน์การทดสอบจะถูกเพิ่มที่ด้านล่างของลูป เนื้อความของลูปมาก่อนนิพจน์ทดสอบ นั่นเป็นสาเหตุที่ร่างกายของลูปต้องดำเนินการเพียงครั้งเดียว แม้ว่านิพจน์การทดสอบจะประเมินว่าเป็นเท็จในการทดสอบครั้งแรกก็ตาม
เมื่อใดจึงควรใช้ do- While loop?
ควรใช้ลูป do- While เมื่อจำนวนการวนซ้ำไม่คงที่ และลูปจะต้องดำเนินการอย่างน้อยหนึ่งครั้ง ที่ C++ ผู้รวบรวม ดำเนินการกับเนื้อความของลูปก่อนที่จะประเมินเงื่อนไข นั่นหมายความว่าการวนซ้ำจะต้องส่งคืนผลลัพธ์ เป็นกรณีนี้แม้ว่าเงื่อนไขการทดสอบจะประเมินเป็นเท็จในการประเมินครั้งแรกก็ตาม เนื่องจากเนื้อความของลูปได้รับการดำเนินการแล้ว จึงจะต้องส่งคืนผลลัพธ์
วากยสัมพันธ์
ไวยากรณ์พื้นฐานของ C++ ทำ while วนซ้ำเป็นดังนี้:
do{
//code
}while(condition);
เงื่อนไขคือนิพจน์ทดสอบ ต้องเป็นจริงจึงจะรันลูปได้ { และ } ทำเครื่องหมายเนื้อหาของ do while มันมาก่อนเงื่อนไข ดังนั้นจึงดำเนินการก่อนเงื่อนไข
do- While loop ทำงานอย่างไร?

คำอธิบายแผนภูมิการไหล:
- เริ่มต้นของ do while วนซ้ำ
- เนื้อความของ do while วนซ้ำ
- นิพจน์ทดสอบหรือเงื่อนไขที่จะประเมิน
- หากนิพจน์ทดสอบเป็นจริง แสดงว่า C++ คอมไพเลอร์ดำเนินการเนื้อหาของ do while loop
- ถ้านิพจน์การทดสอบเป็นเท็จ C++ คอมไพเลอร์ดำเนินการคำสั่งหลังเนื้อหาลูป
- ข้อความที่อยู่หลังเนื้อหาลูป
1 ตัวอย่าง
#include <iostream>
using namespace std;
int main() {
// Local variable
int x = 1;
do {
cout << "X is: " << x << endl;
x = x + 1;
} while (x < 5);
return 0;
}
Output:
นี่คือภาพหน้าจอของรหัส:
คำอธิบายรหัส:
- รวมไฟล์ส่วนหัว iostream ไว้ในโค้ดของเรา มันจะช่วยให้เราอ่านและเขียนไปยังคอนโซลได้
- รวมเนมสเปซมาตรฐานเพื่อใช้คลาสและฟังก์ชันโดยไม่ต้องเรียกมัน
- การเรียกใช้ฟังก์ชัน main() ภายในที่ควรเพิ่มตรรกะของโปรแกรม { เป็นเครื่องหมายเริ่มต้นของเนื้อหาของฟังก์ชัน main()
- ความคิดเห็น ที่ C++ คอมไพเลอร์จะข้ามสิ่งนี้
- ประกาศตัวแปรจำนวนเต็ม x และกำหนดค่าเป็น 1
- การสร้างลูป do- While { ทำเครื่องหมายจุดเริ่มต้นของเนื้อหาวนซ้ำ
- เพื่อพิมพ์ค่าของตัวแปร x ควบคู่ไปกับข้อความอื่นบนคอนโซล จุดสิ้นสุดคือ a C++ คำสำคัญหมายถึงบรรทัดสิ้นสุด
- เพิ่มค่า x ขึ้น 1 หลังจากการวนซ้ำทุกครั้ง
- ส่วนท้ายของตัวห่วง เพิ่มนิพจน์การทดสอบที่ส่วนท้ายของเนื้อหาลูปแล้ว จะทดสอบว่าค่า x น้อยกว่า 5 หรือไม่
- ฟังก์ชัน main() ควรคืนค่าหากโปรแกรมทำงานได้ดี
- ส่วนท้ายของฟังก์ชัน main()
2 ตัวอย่าง
#include <iostream>
using namespace std;
int main()
{
int num, sum = 0;
do {
cout << "Enter a number: ";
cin >> num;
sum += num;
} while (num != 0);
cout << "Sum is " << sum;
return 0;
}
Output:
นี่คือภาพหน้าจอของรหัส:
คำอธิบายรหัส:
- รวมไฟล์ส่วนหัว iostream ไว้ในโค้ดของเรา มันจะช่วยให้เราอ่านและเขียนไปยังคอนโซลได้
- รวมเนมสเปซมาตรฐานเพื่อใช้คลาสและฟังก์ชันโดยไม่ต้องเรียกมัน
- การเรียกใช้ฟังก์ชัน main() ภายในที่ควรเพิ่มตรรกะของโปรแกรม
- { เป็นเครื่องหมายเริ่มต้นของเนื้อหาของฟังก์ชัน main()
- การประกาศตัวแปรจำนวนเต็มสองตัว ได้แก่ num และ sum ผลรวมของตัวแปรถูกกำหนดค่าเริ่มต้นเป็น 0
- การสร้างลูป do- While { ทำเครื่องหมายจุดเริ่มต้นของเนื้อหาวนซ้ำ
- พิมพ์ข้อความ “ป้อนตัวเลข:” บนคอนโซล
- อ่านอินพุตของผู้ใช้จากคอนโซลและจัดเก็บค่าเป็นตัวแปร num cin (อินพุตคอนโซล) เป็นฟังก์ชันที่อ่านอินพุตของผู้ใช้
- การบวกค่า num เข้ากับค่าผลรวมและการจัดเก็บผลลัพธ์เป็นผลรวมตัวแปร
- } ทำเครื่องหมายจุดสิ้นสุดของตัววนซ้ำ นิพจน์ทดสอบได้ถูกเพิ่มไปที่จุดสิ้นสุดของตัววนซ้ำ นิพจน์ทดสอบจะทดสอบว่าค่าที่ผู้ใช้ป้อนเข้าไปนั้นไม่ใช่ 0 หรือไม่ != คือค่าไม่เท่ากับตัวดำเนินการ หากผู้ใช้ป้อน 0 ลูปจะสิ้นสุดลง
- การพิมพ์ค่าผลรวมของตัวแปรบนคอนโซลควบคู่ไปกับข้อความอื่นๆ
- ฟังก์ชัน main() ควรคืนค่าหากโปรแกรมทำงานได้ดี
- ส่วนท้ายของฟังก์ชัน main()
ซ้อน Do While Loop
In C++เป็นไปได้สำหรับเราที่จะสร้างหนึ่ง do- While loop ภายใน do-whole อีกวงหนึ่ง ซึ่งส่งผลให้เกิดการวนซ้ำ do- while แบบซ้อนกัน
วากยสัมพันธ์
do{
statement(s)
do{
statement(s)
}while(condition);
statement(s)
}while(condition);
คำสั่ง do แรกแสดงถึงส่วน do ของลูป do- while ภายนอก
คำสั่ง do ที่สองหมายถึงส่วน do ของลูป do- while ภายใน
คำสั่ง while แรกแสดงถึงเงื่อนไขการทดสอบสำหรับวงใน
คำสั่ง while ที่สองแสดงถึงเงื่อนไขการทดสอบสำหรับลูปภายนอก
Nested Do While Loop ทำงานอย่างไร
Nested do while loop ทำงานดังนี้:
ขั้นตอนที่ 1: การเริ่มต้นจะดำเนินการในครั้งแรกและครั้งเดียว
ขั้นตอนที่ 2: คำสั่ง (do) จะถูกดำเนินการเพียงครั้งเดียว
ขั้นตอนที่ 3: นิพจน์การทดสอบคือการประเมินโดยการควบคุมการไหล
ขั้นตอนที่ 4: ถ้าเป็นจริง วงในจะถูกดำเนินการ
ขั้นตอนที่ 5: การอัปเดตคำสั่งได้รับการอัปเดตแล้ว
ขั้นตอนที่ 6: กระบวนการทำงานซ้ำๆ จนกระทั่งนิพจน์ทดสอบกลายเป็นเท็จ
ขั้นตอนที่ 7: เมื่อนิพจน์การทดสอบกลายเป็นเท็จ วงในจะถูกออกจากและการควบคุมจะข้ามไปยังวงรอบนอก
ขั้นตอนที่ 8: สภาวะการทดสอบได้รับการประเมินอีกครั้ง
ขั้นตอนที่ 9: หากเป็นจริง คำสั่งจะถูกดำเนินการเพื่อคืนค่าเท็จ
ขั้นตอนที่ 10: การดำเนินการหยุดลูปและควบคุมการข้ามไปยังคำสั่งหลังลูป
ตัวอย่าง
#include <iostream>
using namespace std;
int main() {
int a = 1;
do {
int b = 1;
do {
cout << a << "\n";
b++;
} while (b <= 3);
a++;
} while (a <= 3);
}
Output:
นี่คือภาพหน้าจอของรหัส:
คำอธิบายรหัส:
- รวมไฟล์ส่วนหัว iostream ไว้ในโค้ดของเรา มันจะช่วยให้เราอ่านและเขียนไปยังคอนโซลได้
- รวมเนมสเปซมาตรฐานเพื่อใช้คลาสและฟังก์ชันโดยไม่ต้องเรียกมัน
- การเรียกใช้ฟังก์ชัน main() ภายในที่ควรเพิ่มตรรกะของโปรแกรม { เป็นเครื่องหมายเริ่มต้นของเนื้อหาของฟังก์ชัน main()
- การประกาศตัวแปรจำนวนเต็ม a และกำหนดค่าเป็น 1
- การสร้างลูป do- while ภายนอก { ทำเครื่องหมายจุดเริ่มต้นของเนื้อหาวงนอก
- ประกาศตัวแปรจำนวนเต็ม b และกำหนดค่าเป็น 1
- การสร้างลูป do- while ภายใน { ทำเครื่องหมายจุดเริ่มต้นของเนื้อหาวงใน
- เพื่อพิมพ์ค่าของตัวแปร a บนคอนโซล “\n” คืออักขระบรรทัดใหม่ที่เลื่อนเคอร์เซอร์ของเมาส์ไปยังบรรทัดถัดไป
- เพิ่มค่า b ขึ้น 1 หลังจากการวนซ้ำทุกครั้ง
- ส่วนปลายของตัวห่วงด้านใน เพิ่มนิพจน์การทดสอบที่ส่วนท้ายของเนื้อหาลูปแล้ว จะทดสอบว่าค่าของ b น้อยกว่าหรือเท่ากับ 5
- เพิ่มค่า a ขึ้น 1 หลังจากการวนซ้ำทุกครั้ง
- ส่วนปลายของตัวห่วงด้านนอก เพิ่มนิพจน์การทดสอบที่ส่วนท้ายของเนื้อหาลูปแล้ว จะทดสอบว่าค่าของ a น้อยกว่าหรือเท่ากับ 3
- ส่วนท้ายของฟังก์ชัน main()
สรุป
- do- While loop รันส่วนของโค้ดหลายครั้ง
- ควรใช้เมื่อจำนวนการวนซ้ำไม่คงที่
- ในลูป do- While ตัวลูปจะอยู่ก่อนนิพจน์การทดสอบ
- เนื้อความของลูปจะดำเนินการอย่างน้อยหนึ่งครั้ง แม้ว่านิพจน์ทดสอบจะกลายเป็นเท็จก็ตาม
- ควรใช้การวนซ้ำนี้เมื่อจำนวนการวนซ้ำไม่คงที่
- Do while สามารถทำงานได้กี่ครั้งก็ได้ โดยที่เงื่อนไขเป็นจริง
- เงื่อนไขจะได้รับการประเมินหนึ่งครั้งหลังจากการวนซ้ำทุกครั้ง
- ผลลัพธ์ของการประเมินสภาพจะเป็นตัวกำหนดการดำเนินการที่จะต้องดำเนินการ
- หากเงื่อนไขเป็นจริง ลูปจะดำเนินการกับเนื้อหา
- การดำเนินการวนซ้ำจะหยุดทันทีที่เงื่อนไขประเมินเป็นเท็จ
- เนื่องจากเนื้อหา do while ของลูปได้รับการดำเนินการแล้ว จึงจะต้องส่งคืนผลลัพธ์





