ความท้อแท้ส่วนใหญ่เกิดขึ้นในรูปแบบของ "ศาสนา" ที่ได้รับการสร้างขึ้นมาโดยพระเจ้า 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 นั้นเป็นเรื่องที่น่าสนใจ