これについては、若いウィッパースナッパーの皆さんとは意見が一致しません。
メソッドの途中で return を使用することは、void であろうとなかろうと、非常に悪い習慣です。その理由は、ほぼ 40 年前に故 Edsger W. Dijkstra によって、よく知られている「GOTO ステートメントは有害であると見なされる"、および Dahl、Dijkstra、および Hoare による "Structured Programming" に続きます。
基本的な規則は、すべての制御構造とすべてのモジュールが、厳密に 1 つの入口と 1 つの出口を持つべきであるということです。モジュールの途中での明示的な return はそのルールを破り、プログラムの状態について推論することをはるかに難しくし、その結果、プログラムが正しいかどうかを判断することがはるかに難しくなります (これははるかに強力なプロパティです)。 「機能するように見えるかどうか」よりも)。
「有害と見なされる GOTO ステートメント」と「構造化プログラミング」は、1970 年代の「構造化プログラミング」革命を開始しました。これらの 2 つの要素が、現在、if-then-else、while-do、およびその他の明示的な制御構文が存在する理由であり、高級言語の GOTO ステートメントが絶滅危惧種のリストに含まれている理由です。(私の個人的な意見では、絶滅種のリストに載せる必要があります。)
Message Flow Modulator は、最初の試行で承認テストに合格し、逸脱、放棄、または「ええ、しかし」言葉遣いもなく、これまでにない最初の軍事用ソフトウェアであることに注意する価値があります。 GOTO ステートメント。
また、Nicklaus Wirth が、Oberon プログラミング言語の最新バージョンである Oberon-07 の RETURN ステートメントのセマンティクスを変更し、型付きプロシージャ (つまり、関数) の宣言の末尾部分に変更したことにも言及する価値があります。関数本体の実行文。変更についての彼の説明は、以前の形式が構造化プログラミングの 1 つの出口の原則に違反していたという理由だけでそれを行ったと述べています。