C言語系のif...else...って超絶読みにくいからif...だけの式に書き直せ
■ このスレッドは過去ログ倉庫に格納されています
if (IsFoo) { ... }
else { ... }
じゃなくて
if (IsFoo) { ... }
if (!IsFoo) { ... }
こうするだけで超絶読みやすくなる
elseを使ってはいない if(a && !b && c==d){}
if(!(a && !b && c==d)){}
うんち!w 最初のifの中でisFooの値が変わったら2回とも処理しちゃうだろ >>9
それめっちゃ読みやすいじゃん
2行目の式をド・モルガンの定理で書き直してみ?めっちゃ読み悪いから >>11にある通りか必ずしも同じ処理になるわけじゃない
それにそもそも仮に>>1にとって可読性が高くても、第三者がコード見た時に普通やらない書き方がされてたらなんか意図があるんじゃないかと邪推しておかしなことになりそう プログラミング初心者の時にif...else if...else....で分岐しますって習っただろ?そんなの全部ウソだから
if...の一本だけで十分いけるから
elseとか書くのは単なる“カッコつけ”なんだよ >>14
Cって性能重視なのにそんなレスポンス悪化する書き方にしていいの? そうだな
クラスを分けるのもメソッドを分けるのもforで回すのも全部甘えのカッコつけだな >>16
elseがかっこいいってどんな価値観だよ >>11>>15
こうすればいいだけじゃね?めっちゃ読みやすい
if (IsFoo) { ... } // 一行目
if (!IsFoo) { ... } // 二行目
if (IsFoo) { IsFoo = !IsFoo } // 三行目
if (!IsFoo) { IsFoo = !IsFoo } // 四行目 言いたいことは分かるが理系の中の理系って感じだな
あ間違えた理系じゃなくてアスペ 分岐がわかりにくくなるだけだろ
コードレビューでそんなの出てきたら多分指摘して直してもらう >>17
最近のコンパイラはこの程度も最適化してくれないのか?
コンパイラの最適化が使えなくてもこの程度で処理速度に差が出るとは思わないね >>23
ごめん何がしたいコードなのかさっぱり分からんわ >>23
IsFooを処理後に反転させたいのか知らんがそれ元に戻ってないか? あ、>>23だとダメだな
いやでも何とか回避できるんだよ >>31
>>32
こうじゃね?
if (IsFoo) { ...; return;} // 一行目
if (!IsFoo) { ...; return; } // 二行目
こうだよ!こうすればIsFooか!IsFooの中でフラグが反転してもバグらない そうだよ俺のプログラムのソースコードの中ではreturnしてたの
いきなり言われたからわからなかったじゃないか 何にメリット感じるのか考えてたがようやくわかったわ
ifの中身が長かったり、分岐が多発してるとelseが来た時にどの条件に対してのelseかわかんないからこう書こうぜって言いたいんだな
もしそうならelse{ // if (isFoo)って書くようにルール化してる現場もあるな
で、気持ちはわからなくはないが、ifとelseをきちっと書く理由の一つに条件の記述を網羅してる事を示す意味合いもあるから品質向上にも繋がってるのよ
だから、処理先の処理がなくてもelse{}かけって現場もある
エディタの機能に頼れば分岐のトレースも然程苦ではない 関数内でreturnが伴う理由で一つの関数を短めに書くことになるから可読性がさらに上がる elseifアンチはともなくelseアンチは初めて見た 機械語ではただのジャンプかブランチになるだけだからelseを使わないことによるデメリットはない
インデントが無駄に増えてバグの温床になるから許されてるなら使わない方が良いと思うね >>36
「ifとelseをきちっと書く理由の一つに条件の記述を網羅してる事を示す意味合い」って言ってるけどそれが完全にダウトなのよ
つまり「elseの中で何をするかわからないけどとりあえず網羅するためにelseをつけとこ」って話でしょ
プログラマーは「elseの中で何を網羅しているのか?」を完全に把握していなければならないし
「elseの中で何を網羅しているのか?」が完全に把握できていればelseで書く必要がないというわけ }else if{
}else if{
}else if{ >>42
elseの条件を理解していないってことはそもそもifの条件を理解してないってことだから論外じゃね? 昔はテストの回数増えるからelseの方が良かった気がする >>42
すまん、伝わりにくい日本語だったわ
記述の網羅じゃなくて条件を網羅してることを示すが正しい表現だ
elseを書くことは手段であって目的ではない
aaの場合はBをやるって話があったときに、品質チェックとして、じゃあaaではない場合はどうなの?の問に答える
何もしない場合もelseを記述することで設計からの実装漏れに気がつくことができる
レビュアも同じ時点で見るから複数人でやる場合に都合が良い >>50
いやelseは読みにくいでしょ「それ以外」って何だよ「何」のそれ以外なんだよ値を指定しろよ フローチャートで詳細設計下りてきた時は真偽反転したほうがコード読みやすくなるだろとは思った 全知全能の神とは少々奢りが過ぎますね
java scriptは重い処理をは苦手じゃないですか
軽い処理をさばくことしかできなくてなにが全知全能ですか
その点私は重い処理も高速に処理します
裏側のバックエンドは私に任せておきなさい
でもwebサイトをパッと作ることは出来ない ブロックが馬鹿みたいに長いかインデントが滅茶苦茶かの2択以外無いわ ■ このスレッドは過去ログ倉庫に格納されています