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 ของลูปได้รับการดำเนินการแล้ว จึงจะต้องส่งคืนผลลัพธ์