タグ

プログラミングと分岐に関するlocke-009のブックマーク (2)

  • else を禁止してはいけない - Qiita

    複雑なプログラムを書いてしまうのを避けるために、if 文の else を避ける制約を設けてプログラミングしてみましょう、というアプローチがあります。これはあくまで、ThoughtWorks アンソロジーに書かれていた、ある種のプログラミング思考のトレーニング方法のひとつにすぎないものです。 しかし、権威だからか、あるいは、あまりコードを書かない人がわかりやすいと感じるからか、プロダクションコードの規約に使おうとする誤った考えがあります。そんなことをすると、コード品質は下がります。 else 禁止制約というのは、「これまで if-else で記述していた多くのコードは、実は、生成するオブジェクトの多態性によって、分岐の前倒しが可能になるものだったのか」という認識を得られれば、すぐに忘れるべきルールです。 ある実在の OSS コードを例に説明します。 https://github.com/xr

    else を禁止してはいけない - Qiita
  • goto文: 悪魔の誘惑か最後の希望か 【▲→川俣晶の縁側→ソフトウェア→new_C#入門・全キーワード明快解説!】

    解説 § goto文は、プログラムの実行位置を指定したラベルの場所まで飛ばします。 たとえば、break文は1つのループからの強制脱出を可能としますが、ネストしたループからは出られません。しかし、goto文なら出られます。 書式は"goto ラベル名;"です。ラベルは、"ラベル名:"です。 罠の数々 §goto文は無い方が良いのか、あった方が良いのかのgoto論争が存在するが、C言語風の構文を持った多くのプログラミング言語にgoto文は存在する。C#にもある存在しても使わない人、利用を禁止する人も多いC#のgotoは、C言語のgotoよりもずっと制約が厳しく危険性はずっと少ないが、しばしば"goto=悪"と思い込んだ正義の戦士から攻撃されるgotoで他のメソッドには移動できない。また、ループから出ることはできるが、ループに入ることはできない一般的に、goto抜きで簡単に書ける処理はgoto

  • 1