ความท้อแท้ส่วนใหญ่เกิดขึ้นในรูปแบบของ "ศาสนา" ที่ได้รับการสร้างขึ้นมาโดยพระเจ้า Djikstra ซึ่งเป็นแรงบันดาลใจในช่วงต้นยุค 60 เกี่ยวกับพลังที่ไม่สามารถแยกแยะได้ดังนี้
- กระโดดไปที่ใดก็ได้ในบล็อกของรหัส
- ฟังก์ชั่นไม่ได้ดำเนินการจากจุดเริ่มต้น
- ลูปไม่ถูกดำเนินการตั้งแต่ต้น
- ข้ามการเริ่มต้นตัวแปร
- กระโดดจากบล็อกรหัสใด ๆ โดยไม่ต้องล้างข้อมูลใด ๆ
สิ่งนี้ไม่มีอะไรเกี่ยวข้องกับgoto
คำแถลงของภาษาสมัยใหม่ซึ่งมีอยู่เพียงเพื่อสนับสนุนการสร้างโครงสร้างรหัสอื่น ๆ นอกเหนือจากภาษาที่ให้ไว้
โดยเฉพาะอย่างยิ่งจุดหลักแรกด้านบนได้รับอนุญาตอีกต่อไปและที่สองคือการทำความสะอาด (ถ้าคุณgoto
ออกจากบล็อกกองจะผ่อนคลายอย่างถูกต้องและ destructors ที่เหมาะสมทั้งหมดที่เรียกว่า)
คุณสามารถอ้างถึงคำตอบนี้เพื่อให้ทราบว่าแม้แต่โค้ดที่ไม่ได้ใช้ goto สามารถอ่านไม่ได้ ปัญหาไม่ได้เป็นของตัวเอง แต่ใช้ไม่ได้ผล
ฉันสามารถเขียนโปรแกรมทั้งหมดโดยไม่ต้องใช้เพียงif
for
แน่นอนว่ามันจะไม่สามารถอ่านได้ดีมีลักษณะเงอะงะและซับซ้อนโดยไม่จำเป็น
for
แต่ปัญหาก็คือไม่ได้ ฉันเอง.
สิ่งที่ชอบbreak
, continue
, throw
, bool needed=true; while(needed) {...}
ฯลฯ จะสังเกตมากกว่าสวมหน้ากาก goto
ที่จะหลบหนีออกไปจากดาบของหัวรุนแรง Djikstrarian ที่ -50 ปีหลังจากการประดิษฐ์ของ laguages- สมัยใหม่ยังคงต้องการที่นักโทษของพวกเขา พวกเขาลืมสิ่งที่ Djikstra พูดถึงพวกเขาจำได้แค่ชื่อโน้ตของเขาเท่านั้น (GOTO ถือว่าเป็นอันตรายและไม่ใช่แม้แต่ชื่อของเขา: มันเปลี่ยนโดยบรรณาธิการ) และตำหนิและทุบตีทุบตีและตำหนิทุกโครงสร้างที่มี 4 ตัวอักษรเรียงตามลำดับ
ถึงปี 2011: ถึงเวลาที่จะเข้าใจว่าgoto
การไม่ปฏิบัติตามGOTO
คำแถลง Djikstra นั้นเป็นเรื่องที่น่าสนใจ