ฉันเขียนโปรแกรมใน 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
พวกเขาควรลองเขียนโปรแกรมในภาษาที่ไม่มีมัน ไม่ใช้ลูปมากเกินไปก่อนที่คุณจะต้องการมัน!