Non sarò d'accordo con tutti voi giovani whippersnapper su questo.
Usare il ritorno nel mezzo di un metodo, vuoto o meno, è una pessima pratica, per ragioni che sono state articolate abbastanza chiaramente, quasi quarant'anni fa, dal compianto Edsger W. Dijkstra, a partire dalla nota "Dichiarazione GOTO Considered Harmful ", e proseguendo in" Programmazione strutturata ", di Dahl, Dijkstra e Hoare.
La regola di base è che ogni struttura di controllo e ogni modulo dovrebbero avere esattamente un'entrata e un'uscita. Un ritorno esplicito nel mezzo del modulo infrange questa regola e rende molto più difficile ragionare sullo stato del programma, il che a sua volta rende molto più difficile dire se il programma è corretto o meno (cheèuna proprietà molto più forte di "se sembra funzionare o no").
"Dichiarazione GOTO considerata dannosa" e "Programmazione strutturata" hanno dato il via alla rivoluzione "Programmazione strutturata" degli anni '70. Questi due pezzi sono i motivi per cui abbiamo if-then-else, while-do e altri costrutti di controllo espliciti oggi, e perché le dichiarazioni GOTO nei linguaggi di alto livello sono nell'elenco delle specie in pericolo. (La mia opinione personale è che devono essere nell'elenco delle specie estinte.)
Vale la pena notare che il Message Flow Modulator, il primo pezzo di software militare che MAI ha superato i test di accettazione al primo tentativo, senza deviazioni, rinunce o parole "sì, ma", è stato scritto in una lingua che non aveva nemmeno un'istruzione GOTO.
Vale anche la pena ricordare che Nicklaus Wirth ha cambiato la semantica dell'istruzione RETURN in Oberon-07, l'ultima versione del linguaggio di programmazione Oberon, rendendolo un pezzo finale della dichiarazione di una procedura tipizzata (cioè una funzione), piuttosto che una istruzione eseguibile nel corpo della funzione. La sua spiegazione del cambiamento diceva che lo aveva fatto proprio perché il modulo precedente ERA una violazione del principio di una sola uscita della programmazione strutturata.