なぜプログラミング初心者はelseとかswitchtかi++とかを使うのか

1 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 01:32:55.358 ID:ADlHANtH0.net
なぜなのか

17 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 01:42:39 ID:E/pKO05T0.net

そう教えられるからだろ

18 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 01:42:55 ID:9RHW6rwx0.net

28 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 02:08:19.939 ID:AIzWlOJn0.net

>>22
そういうのミスらないようにすればいいじゃんとか思ってしまうんだけど大規模なもの書くとそうも言ってられなくなるのかな…

58 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 03:20:06.731 ID:zEUIte/50.net

プログラムの良し悪しに
スマートととか曖昧な表現はよくないな
DRY原則に従うならこの書き方になるだろう
に訂正する

57 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 03:19:11.290 ID:W9Z7vrvD0.net

gotoなんて読み辛いしコーディングルールで禁止されてるわ
switch,elseの間違いなんて静的解析や試験で防げるでしょ

13 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 01:40:04 ID:ADlHANtH0.net

逆にどういう時に使うか教えてほしい

24 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 02:03:57 ID:wjE+7xYL0.net

>>22
むしろ次のcaseに素通りさせる使い方も普通にするくね?

42 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 02:35:48 ID:wjE+7xYL0.net

>>39
俺かな?

49 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 02:48:41 ID:9EGDYWWh0.net

>>47
修正がやりやすくて 拡張性が維持できるっていうのは利便性が上がるよな(´・ω・`)

22 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 02:01:04 ID:9RHW6rwx0.net

>>19
breakがないと次のcaseに素通りする言語ではミスになる可能性がある
iをまた使いたかったときに意図に反してインクリメントされてしまっている
elseは使わないほうがいい理由はない

79 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 04:36:58.694 ID:9EGDYWWh0.net

ただ エディタ と 新言語 ががっちり有りきで組まれてるのはどうかと思うんだ(´・ω・`)

言語は言語 エディタはエディタ って機能ごとにトランザクションのアイソレーションを考えるべきやろ?(´・ω・`)

51 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 02:50:14 ID:zEUIte/50.net

ただ引数チェックやエラー処理はelseを使わない方がいいだろう

if エラー条件
 エラー処理
else
 正常処理

はよろしくない
エラー処理は例外的な処理であって
正常処理と同列に扱うべきものではない

エラーのときは例外的処理に飛ばすのがよい
ここでgotoを使うのが常套句となっている
唯一goto文のメリットがデメリットを上回る使い方だと思う

 if エラー条件
  goto エラー

 正常処理

 return 正常値

エラー:
 エラー処理
 return エラー値

25 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 02:06:49.735 ID:Co0oGJYm0.net

++は使わなくてもいいが、elseとswitchを使わない理由ってある?

74 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 04:23:15.187 ID:zEUIte/50.net

>>73
そう
だからこそ適切にgotoを使うのさ
適切に使われたソースは
禁止されてしまったソースより間違いが少なくなる

44 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 02:37:21 ID:wSJd7jqhM.net

お前らってちょっとかじった知識でプログラミングしてるよなw
なんて言うか人生の成果物が薄そうだなw

30 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 02:09:05.816 ID:wjE+7xYL0.net

>>27
>複数のcaseに対して同じ処理をする場合の素通りは普通に使うけど
それのことを言っていた

66 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 03:49:35.879 ID:zEUIte/50.net

Linux kernelのソースがgoto文による例外処理を常套手段にしてるから
それ関連の仕事が多いうちでは受け入れられ易かっただけで
他のところだとダメなのかなぁ

77 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 04:32:25.908 ID:9EGDYWWh0.net

入れ子構造の記述がめんどっちいって意見があるのなら

ただ単に エディタに自動変更機能を備えればいいって考えもあるわけで(´・ω・`)

76 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 04:30:28.839 ID:9EGDYWWh0.net

従来のプロセッサに備わっていた様々な命令の大部分が、実際のプログラムを書く際にはほとんど使われていないことが見出された
プログラムを解析すると、使用される命令はそのうちのごくわずかなものに限られることが判った

的な結局は入れ子構造の延長上なわけで それを今に整理するかってなると・・・・(´・ω・`)

34 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 02:20:40 ID:Atp8hgRF0.net

日本語BASICでおk

3 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 01:34:10.850 ID:TD7sftzA0.net

場合によらない?

62 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 03:26:56.776 ID:zEUIte/50.net

>>61
そうだよな
構文が有れば……

14 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 01:40:54 ID:u5mhFz2O0.net

なんで++つかわんの
なんでelse使わんの
なんでswitch使わんの

31 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 02:10:14.779 ID:wjE+7xYL0.net

てかenumなんてswitchとセットみたいなもんだろ

20 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 01:57:04.026 ID:Ryf21JTj0.net

elseとswitch使わないってどうやるの

67 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 03:59:41.831 ID:Co0oGJYm0.net

前の会社、Cだと主張するコードがgotoによる後処理を多用してたけど、
拡張子はcppだし同名異引数の関数もあったから正確にはC++なんだよなぁ……

41 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 02:35:18 ID:9EGDYWWh0.net

break return とかの使い方もあわせてどう拡張性を持たすかでも変わってくるな(´・ω・`)

78 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 04:33:36.553 ID:9EGDYWWh0.net

そうなると 高速な処理をおこなえる エディタ機能の拡張性を考えたほうがええのかなってのもある(´・ω・`)

78 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 04:33:36.553 ID:9EGDYWWh0.net

そうなると 高速な処理をおこなえる エディタ機能の拡張性を考えたほうがええのかなってのもある(´・ω・`)

48 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 02:45:40.820 ID:9EGDYWWh0.net

あまりいろんな分岐処理を緻密に使いすぎると

整理整頓を忘れちゃうようになるかもしれないな(´・ω・`)

整理整頓は拡張性の肝(´・ω・`)

53 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 02:54:44 ID:UASBNQX1d.net

みんなそういうプログラミングの作法ってどこで身に付けてるの?

4 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 01:34:37.502 ID:yhxKrgP20.net

最近linterが頭良すぎてそれfor‾elseじゃなくてmapの方がよくね?ってすぐサジェストしてきてウザい

43 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 02:35:57 ID:zEUIte/50.net

else縛りするアホが上司にいたときは
無理に使わないように処理の意味とは違う書き方になって害悪でしかなかった
理由はネストが深くなるからだとさ

一つの関数が大きく複雑になるのが問題なのだ
ネストが深過ぎる場合たしかに複雑過ぎるケースが多いが
それは適切に関数を分けていないから
elseが悪いことにするのは本質が分かっていない

37 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 02:23:59.875 ID:HlWrxjwI0.net

elseは許してほしい

38 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 02:29:43.544 ID:jSe1XJcs0.net

IDEだとメソッドを追うのは苦じゃないから、呼び出しが深くなってもいいから
メソッドを細かく分けたほうがいいみたいに聞くけど、普通に自分は苦なんだよな
他人のコード読んでるとき、実体どこだよといちいち探す時間かかるから抽象化はほどほどにしてもらいたい

50 :平岡一族 ◆lQvwmSuS2w :2020/08/28(金) 02:49:41 ID:XT8PSGyLM.net

みんなプログラミングにも「道」を求めるんだなぁ

59 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 03:20:23.583 ID:1yMCsmekH.net

汚くても仕様通りに動けば良い派ぼく「汚くても仕様通りに動けば良い、テストクラスは作れ」

64 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 03:32:46.014 ID:W9Z7vrvD0.net

>>60
すべての人が上手く使えるわけではない
goto分使う事でシンプルにコーディングする人も居るけど
多くはスパゲティ化して難解になる。
gotoからのgotoで処理追えなくなってテストも難解になったりする

75 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 04:27:30.273 ID:9EGDYWWh0.net

RISC 思想とおんなじ現象起きてね?(´・ω・`)

処理が増えると 整理整頓がままならなくなる的なやつ(´・ω・`)

55 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 03:15:21.174 ID:zEUIte/50.net

>>54
エラー制御時にリターンは、
エラー時の後処理が無かったり、エラー条件が一つならありだね
そうでないなら飛ばしてしまうのがよい

A,B,Cと順に処理があって
C,B,Aの順に後処理が必要なケースは多い
その時はこう書くのがスマートじゃないかな
――-

if A()==異常
 ret = エラー値A
 goto a

if B()== 異常
 ret = エラー値B
 goto b

If C()== 異常
 ret = エラー値C
 goto c

その他処理

ret = 正常値
c:
 B後処理

b:
 A後処理

a:
 return ret;

――
括弧が色々無いのは許して

27 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 02:08:13.002 ID:Co0oGJYm0.net

>>24
複数のcaseに対して同じ処理をする場合の素通りは普通に使うけど、
それ以外の使い方は別に普通ではないな

19 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 01:56:26 ID:AIzWlOJn0.net

初心者だけどなんでその辺使っちゃダメなの

46 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 02:38:14 ID:L1sGzoX60.net

GOTOも使いやすい

52 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 02:52:01 ID:jSe1XJcs0.net

美しいコードと実用品としてのコードは必ずしも同じ意味ではない
迷ったときはChromeとFirefoxのコードを聖書にしてる

54 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 03:01:36 ID:Co0oGJYm0.net

>>51
return使えばいいだろ

6 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 01:35:54 ID:feNFvJAH0.net

参考演算子がネストしまくるの気持ち悪い

70 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 04:08:56 ID:M+KZ6cPK0.net

>>10
これは有能

2 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 01:33:23.553 ID:mz5bBeud0.net

かぜのなな

80 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 04:58:23 ID:Co0oGJYm0.net

>>73
それ言い出したら、「goto禁止しても使う馬鹿がいるから、gotoのない独自Cコンパイラを作る」から始めないといけなくなるぞ

5 :以下、?ちゃんねるからVIPがお送りします:2020/08/28(金) 01:35:04.466 ID:TlWu8LnGa.net

VB.NET

おすすめの記事