ฉันเขียนโปรแกรมใน Java มาหลายปีแล้ว แต่ฉันเพิ่งกลับไปโรงเรียนเพื่อรับปริญญาอย่างเป็นทางการ ฉันค่อนข้างแปลกใจที่ได้เรียนรู้ว่าในการมอบหมายครั้งสุดท้ายของฉันฉันเสียคะแนนในการใช้ลูปเหมือนด้านล่าง
do{
//get some input.
//if the input meets my conditions, break;
//Otherwise ask again.
} while(true)
ตอนนี้สำหรับการทดสอบของฉันฉันแค่สแกนหาอินพุตคอนโซลบางส่วน แต่ฉันบอกว่าการวนซ้ำแบบนี้หมดกำลังใจเพราะการใช้breakคล้ายกับgotoเราไม่ได้ทำมัน
ฉันเข้าใจถึงข้อผิดพลาดgotoและลูกพี่ลูกน้องของ Java อย่างสมบูรณ์break:labelและฉันรู้สึกดีที่จะไม่ใช้มัน ฉันยังตระหนักว่าโปรแกรมที่สมบูรณ์กว่านี้จะให้วิธีการหลบหนีอื่น ๆ เช่นเพื่อจบโปรแกรม แต่นั่นไม่ใช่เหตุผลที่อาจารย์ของฉันอ้างดังนั้น ...
มีอะไรผิดปกติกับdo-while(true)?
breakอาจมีความหมายดี แต่เข้าใจผิดจริง บางทีคุณสามารถให้การศึกษาแก่อาจารย์ของคุณเกี่ยวกับเรื่องนี้;) ในประสบการณ์ของฉันอาจารย์ไม่ค่อยรู้เรื่องการเขียนโปรแกรม
do {} while (true)เทียบเท่าwhile(true) {}และแบบหลังนั้นอยู่ในรูปแบบที่ธรรมดากว่าและชัดเจนกว่ามาก
breakพวกเขาควรลองเขียนโปรแกรมในภาษาที่ไม่มีมัน ไม่ใช้ลูปมากเกินไปก่อนที่คุณจะต้องการมัน!