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