2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

C言語系のif...else...って超絶読みにくいからif...だけの式に書き直せ

1 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:32:27.027 ID:CtmDxxOX0.net
if (IsFoo) { ... }
else { ... }
じゃなくて
if (IsFoo) { ... }
if (!IsFoo) { ... }
こうするだけで超絶読みやすくなる

elseを使ってはいない

2 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:33:37.288 ID:NW5M8vSN0.net
ソース共有してるやつに家

3 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:33:39.897 ID:L7OXgFR1d.net
フゥー!

4 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:33:54.234 ID:k0NGAam90.net
そう思ってる人ほとんど居ないからお前が他の人の書き方に慣れろ

5 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:34:14.208 ID:DFYfCEiW0.net
揉めそうなネタ

6 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:35:54.531 ID:bSeZE00G0.net
いやいるだろ

7 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:35:57.464 ID:vhGPIGq40.net
わからなくもない

8 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:36:26.305 ID:0/b/kcEr0.net
可読性が高い

9 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:36:42.065 ID:eYXwLeIr0.net
if(a && !b && c==d){}
if(!(a && !b && c==d)){}
うんち!w

10 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:36:54.081 ID:0txz7a8u0.net
おそくなる

11 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:37:24.602 ID:fazJ3Fgl0.net
最初のifの中でisFooの値が変わったら2回とも処理しちゃうだろ

12 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:37:31.628 ID:HsLEMeC90.net
動作効率悪そう

13 : 警備員[Lv.5][新]:2024/05/19(日) 18:39:22.723 ID:Sze7kvOH0.net
読みにくくなるだろ

14 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:41:50.595 ID:CtmDxxOX0.net
>>9
それめっちゃ読みやすいじゃん
2行目の式をド・モルガンの定理で書き直してみ?めっちゃ読み悪いから

15 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:42:46.317 ID:9lusWY3Z0.net
>>11にある通りか必ずしも同じ処理になるわけじゃない
それにそもそも仮に>>1にとって可読性が高くても、第三者がコード見た時に普通やらない書き方がされてたらなんか意図があるんじゃないかと邪推しておかしなことになりそう

16 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:43:43.326 ID:CtmDxxOX0.net
プログラミング初心者の時にif...else if...else....で分岐しますって習っただろ?そんなの全部ウソだから
if...の一本だけで十分いけるから

elseとか書くのは単なる“カッコつけ”なんだよ

17 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:43:45.390 ID:KpG7VK520.net
>>14
Cって性能重視なのにそんなレスポンス悪化する書き方にしていいの?

18 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:45:46.548 ID:5GZRdtyy0.net
>>17
ダメだとおもう

19 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:46:54.799 ID:0/b/kcEr0.net
>>16
情報科学の先生に怒られそう

20 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:47:09.166 ID:NNc6if8p0.net
そうだな
クラスを分けるのもメソッドを分けるのもforで回すのも全部甘えのカッコつけだな

21 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:47:37.885 ID:0dO5fUsa0.net
ガード節ってやつ?

22 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:49:10.221 ID:5GZRdtyy0.net
>>16
elseがかっこいいってどんな価値観だよ

23 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:50:40.918 ID:CtmDxxOX0.net
>>11>>15
こうすればいいだけじゃね?めっちゃ読みやすい
if (IsFoo) { ... } // 一行目
if (!IsFoo) { ... } // 二行目
if (IsFoo) { IsFoo = !IsFoo } // 三行目
if (!IsFoo) { IsFoo = !IsFoo } // 四行目

24 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:51:03.337 ID:dgaVUEx40.net
同じ条件を2箇所に書く……バグの元だと思う

25 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:51:26.449 ID:sj/aCYzF0.net
後置if大好きrubyist高みの見物

26 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:51:42.936 ID:5GZRdtyy0.net
>>23
読み難いしいちいち判定してて遅そう

27 :以下、?ちゃんねるからVIPがお送りします🐙:2024/05/19(日) 18:52:15.875 ID:g6bVPYqtd.net
言いたいことは分かるが理系の中の理系って感じだな

あ間違えた理系じゃなくてアスペ

28 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:52:46.738 ID:0mvoYcmC0.net
分岐がわかりにくくなるだけだろ
コードレビューでそんなの出てきたら多分指摘して直してもらう

29 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:53:37.542 ID:CtmDxxOX0.net
>>17
最近のコンパイラはこの程度も最適化してくれないのか?
コンパイラの最適化が使えなくてもこの程度で処理速度に差が出るとは思わないね

30 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:55:02.995 ID:dgaVUEx40.net
もうif文やめて全部switch文にしろ

31 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:55:06.822 ID:NNc6if8p0.net
>>23
ごめん何がしたいコードなのかさっぱり分からんわ

32 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:58:16.597 ID:KpG7VK520.net
>>23
IsFooを処理後に反転させたいのか知らんがそれ元に戻ってないか?

33 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 18:58:46.163 ID:CtmDxxOX0.net
あ、>>23だとダメだな
いやでも何とか回避できるんだよ

34 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 19:02:12.663 ID:CtmDxxOX0.net
>>31
>>32
こうじゃね?
if (IsFoo) { ...; return;} // 一行目
if (!IsFoo) { ...; return; } // 二行目

こうだよ!こうすればIsFooか!IsFooの中でフラグが反転してもバグらない

35 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 19:03:24.367 ID:CtmDxxOX0.net
そうだよ俺のプログラムのソースコードの中ではreturnしてたの
いきなり言われたからわからなかったじゃないか

36 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 19:05:01.849 ID:NU/HAxs60.net
何にメリット感じるのか考えてたがようやくわかったわ
ifの中身が長かったり、分岐が多発してるとelseが来た時にどの条件に対してのelseかわかんないからこう書こうぜって言いたいんだな

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

で、気持ちはわからなくはないが、ifとelseをきちっと書く理由の一つに条件の記述を網羅してる事を示す意味合いもあるから品質向上にも繋がってるのよ
だから、処理先の処理がなくてもelse{}かけって現場もある
エディタの機能に頼れば分岐のトレースも然程苦ではない

37 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 19:07:00.100 ID:CtmDxxOX0.net
関数内でreturnが伴う理由で一つの関数を短めに書くことになるから可読性がさらに上がる

38 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 19:08:13.973 ID:/6VhLsIEM.net
100%修正漏れ出るわ

39 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 19:09:55.125 ID:Zak0IeSA0.net
elseifアンチはともなくelseアンチは初めて見た

40 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 19:10:44.059 ID:Pl/dyR7k0.net
機械語ではただのジャンプかブランチになるだけだからelseを使わないことによるデメリットはない
インデントが無駄に増えてバグの温床になるから許されてるなら使わない方が良いと思うね

41 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 19:11:47.929 ID:0/b/kcEr0.net
2回処理を行う点と疑似的な分岐な点でゴミじゃね

42 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 19:14:49.185 ID:CtmDxxOX0.net
>>36
「ifとelseをきちっと書く理由の一つに条件の記述を網羅してる事を示す意味合い」って言ってるけどそれが完全にダウトなのよ
つまり「elseの中で何をするかわからないけどとりあえず網羅するためにelseをつけとこ」って話でしょ

プログラマーは「elseの中で何を網羅しているのか?」を完全に把握していなければならないし
「elseの中で何を網羅しているのか?」が完全に把握できていればelseで書く必要がないというわけ

43 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 19:15:32.163 ID:COYySBHa0.net
}else if{
}else if{
}else if{

44 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 19:16:52.124 ID:CtmDxxOX0.net
>>41
いやいや可読性の鬼だから

45 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 19:22:36.869 ID:Zs8IU1JI0.net
>>42
elseの条件を理解していないってことはそもそもifの条件を理解してないってことだから論外じゃね?

46 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 19:29:06.707 ID:FPqzW+pd0.net
昔はテストの回数増えるからelseの方が良かった気がする

47 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 19:35:33.908 ID:9C9aFRna0.net
don't repeat yourself

48 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 19:48:23.838 ID:dgaVUEx40.net
世の中にはいろんな知恵遅れがいるなあ

49 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 20:13:55.533 ID:NU/HAxs60.net
>>42
すまん、伝わりにくい日本語だったわ
記述の網羅じゃなくて条件を網羅してることを示すが正しい表現だ
elseを書くことは手段であって目的ではない

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

何もしない場合もelseを記述することで設計からの実装漏れに気がつくことができる
レビュアも同じ時点で見るから複数人でやる場合に都合が良い

50 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 20:22:14.204 ID:9C9aFRna0.net
elseを読みにくいと思う発想が分からない

51 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 20:27:51.416 ID:CtmDxxOX0.net
>>50
いやelseは読みにくいでしょ「それ以外」って何だよ「何」のそれ以外なんだよ値を指定しろよ

52 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 20:32:55.278 ID:ZIyFx9Wk0.net
いやですおわり

53 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 20:37:08.743 ID:LSd2EC5r0.net
フローチャートで詳細設計下りてきた時は真偽反転したほうがコード読みやすくなるだろとは思った

54 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 20:41:07.720 ID:0gajmsSD0.net
全知全能の神とは少々奢りが過ぎますね
java scriptは重い処理をは苦手じゃないですか
軽い処理をさばくことしかできなくてなにが全知全能ですか
その点私は重い処理も高速に処理します
裏側のバックエンドは私に任せておきなさい

でもwebサイトをパッと作ることは出来ない

55 :以下、?ちゃんねるからVIPがお送りします:2024/05/19(日) 20:41:20.474 ID:9C9aFRna0.net
ブロックが馬鹿みたいに長いかインデントが滅茶苦茶かの2択以外無いわ

総レス数 55
13 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200