アカウント名:
パスワード:
breakするよりgotoで飛ばした方が速度出たりするんだよね
「goto を使ってはいけません」と習ったので、頑なにそれを守って「多重ループを一気に抜けるためだけに」関数化して return で抜ける人もいたりする……
「gotoをつかってはいけません」に加えて「関数の途中でreturnで抜けるの禁止、というか1関数にreturnは1つだけな」みたいな変な制約つけるところあるけどね。構造化プログラミングの名の下に。
> …1関数にreturnは1つだけな」みたいな変な制約
最初見た時、複数の値を返す事言ってるのかと思ったけど、returnするところは 1個所のあれか。あれの利点がよくわからない。デバッガで止めやすいからなんだろうか…。
変数宣言は全て先頭でとかも未だにあるよね。
そういう決まり作ってる所のコードは大抵にして 1メソッドが無駄に長くて読みにくいんだよなぁ。
長い長い関数の途中でreturnされているのを見落として痛い目にあったことがある人が決めたルールなんじゃないのかな。でもこの場合の正解は長い長い関数を書かずに適切に短い関数に分割せよ、なんだけどねえ。
「長くなってきたな…」と思ったときにそのまま分割できる構造になっているので、単一returnっていうのもそこそこ健全なメンテナンスポリシーのひとつだと思いますよ。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
最初のバージョンは常に打ち捨てられる。
goto文は使い方 (スコア:0)
breakするよりgotoで飛ばした方が速度出たりするんだよね
Re: (スコア:0)
「goto を使ってはいけません」と習ったので、
頑なにそれを守って「多重ループを一気に抜けるためだけに」関数化して return で抜ける人もいたりする……
Re: (スコア:1)
「gotoをつかってはいけません」に加えて「関数の途中でreturnで抜けるの禁止、というか1関数にreturnは1つだけな」みたいな変な制約つけるところあるけどね。
構造化プログラミングの名の下に。
Re: (スコア:0)
> …1関数にreturnは1つだけな」みたいな変な制約
最初見た時、複数の値を返す事言ってるのかと思ったけど、returnするところは 1個所のあれか。
あれの利点がよくわからない。デバッガで止めやすいからなんだろうか…。
変数宣言は全て先頭でとかも未だにあるよね。
そういう決まり作ってる所のコードは大抵にして 1メソッドが無駄に長くて読みにくいんだよなぁ。
Re:goto文は使い方 (スコア:0)
長い長い関数の途中でreturnされているのを見落として痛い目にあったことがある人が決めたルールなんじゃないのかな。
でもこの場合の正解は長い長い関数を書かずに適切に短い関数に分割せよ、なんだけどねえ。
Re: (スコア:0)
「長くなってきたな…」と思ったときにそのまま分割できる構造になっているので、
単一returnっていうのもそこそこ健全なメンテナンスポリシーのひとつだと思いますよ。