ต่อไปนี้เป็นคำตอบอื่นที่ยังไม่มีใครคิด ลูปควรจะใช้เมื่อคุณจำเป็นต้องย้ำกว่าลำดับfor
การใช้!=
เป็นวิธีรัดกุมที่สุดในการระบุเงื่อนไขการยกเลิกสำหรับลูป อย่างไรก็ตามการใช้โอเปอเรเตอร์ที่มีข้อ จำกัด น้อยกว่านั้นเป็นสำนวนการเขียนโปรแกรมป้องกัน สำหรับจำนวนเต็มไม่สำคัญ - เป็นเพียงตัวเลือกส่วนบุคคลโดยไม่มีตัวอย่างเฉพาะเจาะจงมากขึ้น วนซ้ำคอลเล็กชันกับตัววนซ้ำที่คุณต้องการใช้!=
ด้วยเหตุผลอื่น ๆ ที่ระบุไว้ หากคุณพิจารณาลำดับของfloat
หรือdouble
คุณต้องการหลีกเลี่ยง!=
ค่าใช้จ่ายทั้งหมด
สิ่งที่ฉันต้องการชี้ให้เห็นfor
คือใช้เมื่อคุณต้องการวนซ้ำในลำดับ ลำดับที่สร้างขึ้นมีจุดเริ่มต้นช่วงเวลาและเงื่อนไขการยกเลิก สิ่งเหล่านี้จะถูกระบุไว้อย่างชัดเจนภายในfor
คำสั่ง หากคุณพบว่าตัวเอง (1) ไม่ได้รวมส่วนของขั้นตอนfor
หรือ (2) ที่ระบุบางอย่างเช่นtrue
สภาพของยามคุณไม่ควรใช้for
ลูป!
การwhile
วนซ้ำใช้เพื่อดำเนินการต่อในขณะที่ตรงตามเงื่อนไขที่ระบุ หากคุณไม่ได้ประมวลผลตามลำดับคุณอาจต้องการwhile
วนรอบแทน การโต้เถียงของ Guard มีความคล้ายคลึงกันที่นี่ แต่การตัดสินใจระหว่าง a while
และfor
loop ควรเป็นสิ่งที่มีสติมาก การwhile
วนซ้ำนั้นไม่นิยมใน IMO ของแวดวง C ++
หากคุณกำลังประมวลผลคอลเลกชันของรายการ (การfor
ใช้งานทั่วไป - ลูป) คุณควรใช้วิธีการเฉพาะเพิ่มเติม น่าเสียดายที่std::for_each
C ++ ค่อนข้างจะเจ็บปวดด้วยเหตุผลหลายประการ ในหลายกรณีการแยกลำตัวของfor
ลูปในฟังก์ชั่นยืนฟรี (ในขณะที่ค่อนข้างเจ็บปวด) ส่งผลในการแก้ปัญหาที่สะอาดมากขึ้น เมื่อทำงานร่วมกับคอลเลกชัน, พิจารณาstd::for_each
, หรือstd::transform
std::accumulate
การใช้อัลกอริธึมหลายอย่างกระชับและชัดเจนเมื่อแสดงในลักษณะนี้ ไม่ต้องพูดถึงว่าการแยกลำตัวของวงออกเป็นฟังก์ชัน / วิธีแยกต่างหากจะบังคับให้คุณจดจ่อกับอัลกอริทึมข้อกำหนดการป้อนข้อมูลและผลลัพธ์
หากคุณกำลังใช้ Java, Python, Ruby, หรือแม้กระทั่งC ++ 0xแล้วคุณควรจะใช้คอลเลกชันที่เหมาะสมforeachห่วง เนื่องจากคอมไพเลอร์ C ++ ใช้คุณสมบัตินี้จำนวนfor
ลูปจะหายไปเช่นเดียวกับการสนทนาประเภทนี้
int i = 10; while(i --> 0) { /* stuff */ }