X



C言語系のif...else...って超絶読みにくいからif...だけの式に書き直せ
■ このスレッドは過去ログ倉庫に格納されています
0001以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 18:32:27.027ID:CtmDxxOX0
if (IsFoo) { ... }
else { ... }
じゃなくて
if (IsFoo) { ... }
if (!IsFoo) { ... }
こうするだけで超絶読みやすくなる

elseを使ってはいない
0005以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 18:34:14.208ID:DFYfCEiW0
揉めそうなネタ
0006以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 18:35:54.531ID:bSeZE00G0
いやいるだろ
0007以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 18:35:57.464ID:vhGPIGq40
わからなくもない
0008以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 18:36:26.305ID:0/b/kcEr0
可読性が高い
0009以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 18:36:42.065ID:eYXwLeIr0
if(a && !b && c==d){}
if(!(a && !b && c==d)){}
うんち!w
0010以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 18:36:54.081ID:0txz7a8u0
おそくなる
0011以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 18:37:24.602ID:fazJ3Fgl0
最初のifの中でisFooの値が変わったら2回とも処理しちゃうだろ
0012以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 18:37:31.628ID:HsLEMeC90
動作効率悪そう
0013 警備員[Lv.5][新]
垢版 |
2024/05/19(日) 18:39:22.723ID:Sze7kvOH0
読みにくくなるだろ
0014以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 18:41:50.595ID:CtmDxxOX0
>>9
それめっちゃ読みやすいじゃん
2行目の式をド・モルガンの定理で書き直してみ?めっちゃ読み悪いから
0015以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 18:42:46.317ID:9lusWY3Z0
>>11にある通りか必ずしも同じ処理になるわけじゃない
それにそもそも仮に>>1にとって可読性が高くても、第三者がコード見た時に普通やらない書き方がされてたらなんか意図があるんじゃないかと邪推しておかしなことになりそう
0016以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 18:43:43.326ID:CtmDxxOX0
プログラミング初心者の時にif...else if...else....で分岐しますって習っただろ?そんなの全部ウソだから
if...の一本だけで十分いけるから

elseとか書くのは単なる“カッコつけ”なんだよ
0017以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 18:43:45.390ID:KpG7VK520
>>14
Cって性能重視なのにそんなレスポンス悪化する書き方にしていいの?
0018以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 18:45:46.548ID:5GZRdtyy0
>>17
ダメだとおもう
0019以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 18:46:54.799ID:0/b/kcEr0
>>16
情報科学の先生に怒られそう
0020以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 18:47:09.166ID:NNc6if8p0
そうだな
クラスを分けるのもメソッドを分けるのもforで回すのも全部甘えのカッコつけだな
0021以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 18:47:37.885ID:0dO5fUsa0
ガード節ってやつ?
0022以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 18:49:10.221ID:5GZRdtyy0
>>16
elseがかっこいいってどんな価値観だよ
0023以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 18:50:40.918ID:CtmDxxOX0
>>11>>15
こうすればいいだけじゃね?めっちゃ読みやすい
if (IsFoo) { ... } // 一行目
if (!IsFoo) { ... } // 二行目
if (IsFoo) { IsFoo = !IsFoo } // 三行目
if (!IsFoo) { IsFoo = !IsFoo } // 四行目
0024以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 18:51:03.337ID:dgaVUEx40
同じ条件を2箇所に書く……バグの元だと思う
0025以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 18:51:26.449ID:sj/aCYzF0
後置if大好きrubyist高みの見物
0026以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 18:51:42.936ID:5GZRdtyy0
>>23
読み難いしいちいち判定してて遅そう
0027以下、5ちゃんねるからVIPがお送りします🐙
垢版 |
2024/05/19(日) 18:52:15.875ID:g6bVPYqtd
言いたいことは分かるが理系の中の理系って感じだな

あ間違えた理系じゃなくてアスペ
0028以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 18:52:46.738ID:0mvoYcmC0
分岐がわかりにくくなるだけだろ
コードレビューでそんなの出てきたら多分指摘して直してもらう
0029以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 18:53:37.542ID:CtmDxxOX0
>>17
最近のコンパイラはこの程度も最適化してくれないのか?
コンパイラの最適化が使えなくてもこの程度で処理速度に差が出るとは思わないね
0030以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 18:55:02.995ID:dgaVUEx40
もうif文やめて全部switch文にしろ
0031以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 18:55:06.822ID:NNc6if8p0
>>23
ごめん何がしたいコードなのかさっぱり分からんわ
0032以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 18:58:16.597ID:KpG7VK520
>>23
IsFooを処理後に反転させたいのか知らんがそれ元に戻ってないか?
0033以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 18:58:46.163ID:CtmDxxOX0
あ、>>23だとダメだな
いやでも何とか回避できるんだよ
0034以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 19:02:12.663ID:CtmDxxOX0
>>31
>>32
こうじゃね?
if (IsFoo) { ...; return;} // 一行目
if (!IsFoo) { ...; return; } // 二行目

こうだよ!こうすればIsFooか!IsFooの中でフラグが反転してもバグらない
0035以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 19:03:24.367ID:CtmDxxOX0
そうだよ俺のプログラムのソースコードの中ではreturnしてたの
いきなり言われたからわからなかったじゃないか
0036以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 19:05:01.849ID:NU/HAxs60
何にメリット感じるのか考えてたがようやくわかったわ
ifの中身が長かったり、分岐が多発してるとelseが来た時にどの条件に対してのelseかわかんないからこう書こうぜって言いたいんだな

もしそうならelse{ // if (isFoo)って書くようにルール化してる現場もあるな

で、気持ちはわからなくはないが、ifとelseをきちっと書く理由の一つに条件の記述を網羅してる事を示す意味合いもあるから品質向上にも繋がってるのよ
だから、処理先の処理がなくてもelse{}かけって現場もある
エディタの機能に頼れば分岐のトレースも然程苦ではない
0037以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 19:07:00.100ID:CtmDxxOX0
関数内でreturnが伴う理由で一つの関数を短めに書くことになるから可読性がさらに上がる
0038以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 19:08:13.973ID:/6VhLsIEM
100%修正漏れ出るわ
0039以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 19:09:55.125ID:Zak0IeSA0
elseifアンチはともなくelseアンチは初めて見た
0040以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 19:10:44.059ID:Pl/dyR7k0
機械語ではただのジャンプかブランチになるだけだからelseを使わないことによるデメリットはない
インデントが無駄に増えてバグの温床になるから許されてるなら使わない方が良いと思うね
0041以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 19:11:47.929ID:0/b/kcEr0
2回処理を行う点と疑似的な分岐な点でゴミじゃね
0042以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 19:14:49.185ID:CtmDxxOX0
>>36
「ifとelseをきちっと書く理由の一つに条件の記述を網羅してる事を示す意味合い」って言ってるけどそれが完全にダウトなのよ
つまり「elseの中で何をするかわからないけどとりあえず網羅するためにelseをつけとこ」って話でしょ

プログラマーは「elseの中で何を網羅しているのか?」を完全に把握していなければならないし
「elseの中で何を網羅しているのか?」が完全に把握できていればelseで書く必要がないというわけ
0043以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 19:15:32.163ID:COYySBHa0
}else if{
}else if{
}else if{
0044以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 19:16:52.124ID:CtmDxxOX0
>>41
いやいや可読性の鬼だから
0045以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 19:22:36.869ID:Zs8IU1JI0
>>42
elseの条件を理解していないってことはそもそもifの条件を理解してないってことだから論外じゃね?
0046以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 19:29:06.707ID:FPqzW+pd0
昔はテストの回数増えるからelseの方が良かった気がする
0047以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 19:35:33.908ID:9C9aFRna0
don't repeat yourself
0048以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 19:48:23.838ID:dgaVUEx40
世の中にはいろんな知恵遅れがいるなあ
0049以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 20:13:55.533ID:NU/HAxs60
>>42
すまん、伝わりにくい日本語だったわ
記述の網羅じゃなくて条件を網羅してることを示すが正しい表現だ
elseを書くことは手段であって目的ではない

aaの場合はBをやるって話があったときに、品質チェックとして、じゃあaaではない場合はどうなの?の問に答える

何もしない場合もelseを記述することで設計からの実装漏れに気がつくことができる
レビュアも同じ時点で見るから複数人でやる場合に都合が良い
0050以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 20:22:14.204ID:9C9aFRna0
elseを読みにくいと思う発想が分からない
0051以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 20:27:51.416ID:CtmDxxOX0
>>50
いやelseは読みにくいでしょ「それ以外」って何だよ「何」のそれ以外なんだよ値を指定しろよ
0052以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 20:32:55.278ID:ZIyFx9Wk0
いやですおわり
0053以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 20:37:08.743ID:LSd2EC5r0
フローチャートで詳細設計下りてきた時は真偽反転したほうがコード読みやすくなるだろとは思った
0054以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 20:41:07.720ID:0gajmsSD0
全知全能の神とは少々奢りが過ぎますね
java scriptは重い処理をは苦手じゃないですか
軽い処理をさばくことしかできなくてなにが全知全能ですか
その点私は重い処理も高速に処理します
裏側のバックエンドは私に任せておきなさい

でもwebサイトをパッと作ることは出来ない
0055以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/05/19(日) 20:41:20.474ID:9C9aFRna0
ブロックが馬鹿みたいに長いかインデントが滅茶苦茶かの2択以外無いわ
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況