Saya akan tidak setuju dengan semua orang bodoh muda yang satu ini.
Menggunakan kembali di tengah metode, batal atau sebaliknya, adalah praktik yang sangat buruk, karena alasan yang diartikulasikan dengan cukup jelas, hampir empat puluh tahun yang lalu, oleh almarhum Edsger W. Dijkstra, dimulai dari "Pernyataan GOTO yang Dianggap Berbahaya ", dan dilanjutkan di" Pemrograman Terstruktur ", oleh Dahl, Dijkstra, dan Hoare.
Aturan dasarnya adalah bahwa setiap struktur kontrol, dan setiap modul, harus memiliki tepat satu entri dan satu pintu keluar. Pengembalian eksplisit di tengah modul melanggar aturan itu, dan membuatnya lebih sulit untuk bernalar tentang status program, yang pada gilirannya membuat lebih sulit untuk mengatakan apakah program itu benar atau tidak (yang merupakan properti yang jauh lebih kuat daripada "apakah itu tampak berfungsi atau tidak").
"Pernyataan GOTO Dianggap Berbahaya" dan "Pemrograman Terstruktur" memulai revolusi "Pemrograman Terstruktur" pada tahun 1970-an. Kedua bagian tersebut adalah alasan kami memiliki if-then-else, while-do, dan konstruksi kontrol eksplisit lainnya saat ini, dan mengapa pernyataan GOTO dalam bahasa tingkat tinggi ada di daftar Spesies Terancam Punah. (Pendapat pribadi saya adalah bahwa mereka harus ada dalam daftar Spesies Punah.)
Perlu dicatat bahwa Message Flow Modulator, perangkat lunak militer pertama yang PERNAH lulus pengujian penerimaan pada percobaan pertama, tanpa penyimpangan, pengabaian, atau kata-kata "ya, tetapi", ditulis dalam bahasa yang bahkan tidak memiliki pernyataan GOTO.
Perlu juga disebutkan bahwa Nicklaus Wirth mengubah semantik pernyataan RETURN di Oberon-07, versi terbaru dari bahasa pemrograman Oberon, membuatnya menjadi bagian akhir dari deklarasi prosedur yang diketik (yaitu, fungsi), daripada sebuah pernyataan yang dapat dieksekusi dalam tubuh fungsi. Penjelasan tentang perubahan mengatakan bahwa dia melakukannya justru karena bentuk sebelumnya WS pelanggaran prinsip satu-keluar dari Pemrograman Terstruktur.