if文とgoto文の条件分岐を覚えればプログラミング言語って誰でも習得出来るじ ゃん

1: 2019/10/08(火) 13:50:14.49
https://techable.jp/archives/109290ここ数年、エンジニアに憧れ、プログラミングを勉強する人が増えている。

そんななか人気を集めているのが、オンライン上でプログラミング学習ができるサービス。
今回取り上げる「Progate(プロゲート)」もそのひとつだ。

翻って、プログラミング学習を始めてみたものの、途中で挫折してしまう人も多い。
あるいは、プログラムはやりきったがその先にいけないというモヤモヤを抱えている人もいるだろう。

では、未経験から(その先の)エンジニアになるにはどうすればいいのだろうかーー。
そんな疑問を、株式会社Progateの代表・加藤將倫氏にぶつけてみた。

引用元: ・プログラミングって「IF」と「GOTO」がすべてじゃん。馬鹿でもできるじゃん。馬鹿なの?

6: 2019/10/08(火) 13:52:13.37
そりゃ大元がフリップフロップだし。https://ja.wikipedia.org/wiki/フリップフロップ
7: 2019/10/08(火) 13:52:32.25
すげー難しく考えてるやつ多いよね。
内部的にはifとgotoですべて表現されてるってのは間違いじゃない。
16: 2019/10/08(火) 13:56:21.45
でも高級言語でifだらけのコード書く奴は間違いなく無能
あとgotoを宗教のごとく絶対タブー視するのも無能
gotoを多用する奴も無能
19: 2019/10/08(火) 13:57:46.58
>>16
今はいきなり高級言語だから難しく考えてしまうんだろうな
64: 2019/10/08(火) 14:18:22.01
>>16
gotoは異常終了で最後に飛ばす時のみ、とか
ルールを決めて楽しく使いましょう
384: 2019/10/08(火) 20:01:22.01
>>64
異常終了の処理だけはGOTO認めるw
387: 2019/10/08(火) 20:05:10.18
>>384
それ、throw, catch使えよって突っ込めばいいんだろ?
バカにしないでくれる!?知ってるわよそのくらい!!
391: 2019/10/08(火) 20:13:54.09
>>387
setjumpとlongjumpだろ常考https://qiita.com/jj1bdx/items/ba1b71641cd51a5ac186
269: 2019/10/08(火) 17:03:10.63
>>16
gotoが有効的に使えるのは、多段ネストから一気に抜けたい場合だな
フラグ使って抜けるよりコードが簡潔になる
これ以外じゃ使ったことないわ
20: 2019/10/08(火) 13:58:18.52
BASICくらいシンプルなのから始めればいいのにな
487: 2019/10/08(火) 22:56:45.30
>>20
BASICはシンプルじゃねえぞ
gosub 行番号とかreturn 行番号とかスパゲティ必至のアホな仕様だ
22: 2019/10/08(火) 13:58:49.89
あとはやりたいことをどうifとGOTOで表現するかだな
25: 2019/10/08(火) 13:59:14.39
z80からのプログラミング
27: 2019/10/08(火) 14:00:24.11
ifが1つならなんも問題ないな
2つ3つと増えていくごとに複雑になる
482: 2019/10/08(火) 22:42:14.20
>>27
ネストが深いのは嫌だわ
28: 2019/10/08(火) 14:01:05.93
33: 2019/10/08(火) 14:02:55.98
ifじゃなくてCMPとgotoで十分よ
450: 2019/10/08(火) 21:47:14.00
>>33
これ

比較してフラグ見て分岐(ジャンプ)

35: 2019/10/08(火) 14:03:24.83
確か理論上はif文だけで
どんなに複雑な動きをするソフトも作れるんだっけか?
まぁやりたいとは思わないけどもw
397: 2019/10/08(火) 20:23:56.19
>>35
理論上と言うより、最終結果のマシン語がIF分岐の塊。
人が読みやすいように言語を作って使っているに過ぎない。

ちなみに、電子(電気)回路も、トランジスタの塊。
IC(LSIは大規模ICである)化することで分かりやすく、使いやすくしている。

38: 2019/10/08(火) 14:04:06.86
まあCとかその派生じゃgotoはまず使わんな
44: 2019/10/08(火) 14:07:03.44
エクセルの関数でアホみたいにIF使いまくってる俺もプログラマーだったのか
56: 2019/10/08(火) 14:12:03.52
ただのあみだくじなんだよなぁ……
58: 2019/10/08(火) 14:13:29.76
>>56
でもjsでいいからあみだくじ実装してみそ?
って言われたらできないんだよなぁ…
57: 2019/10/08(火) 14:13:24.33
10 A=0
20 A=A+1
30 PRINT A
40 GOTO 20
609: 2019/10/09(水) 20:45:08.34
>>57
こわいことしないで
70: 2019/10/08(火) 14:23:34.34
逐次実行
条件分岐 IF
繰り返し GOTOで代用

そういう話だろ?

79: 2019/10/08(火) 14:28:26.01
excelのvbaってプログラミング?
97: 2019/10/08(火) 14:38:04.13
>>79
VBAはVisual Basicみたいなもんだから、極めればかなりのことができる。
基本Excel内でしか動かないけど、外部アプリを呼び出すような使い方すればもっといろいろなこともできる。
83: 2019/10/08(火) 14:29:55.68
goto 1000
END このスレ
89: 2019/10/08(火) 14:32:34.26
条件判断分岐とループ
インプットとアウトプット
くらいよね。
GOTOはいらんよね
94: 2019/10/08(火) 14:35:38.11
gotoが実装されてない言語がほとんどだろ
113: 2019/10/08(火) 14:49:50.22
そらbrainfuckでも理論上は何でも作れますけれども…
121: 2019/10/08(火) 14:54:37.48
その理屈だと
ノコギリとトンカチだけで誰でも家が建てられることになるな。
341: 2019/10/08(火) 18:40:36.51
>>121
ノコギリとトンカチの使用方法と
ノコギリとトンカチだけでできる限界を知らないやつが設計するからデスマーチになるんだよ。
128: 2019/10/08(火) 15:08:10.40
IF 無職 GOTO ハロワ
149: 2019/10/08(火) 15:22:41.26
go to どうしてそこへとばすの?
仕様がしっかりしていれば・・
151: 2019/10/08(火) 15:23:26.02
コード書きしているうちにめんどうくさくなって、やってしまうひとが
164: 2019/10/08(火) 15:35:02.11
COBOLこそ至高
209: 2019/10/08(火) 16:15:38.08
goto使わないと2重ループ脱出はどうするの?
229: 2019/10/08(火) 16:31:04.75
>>209
break は何重でも脱出できるぞ。https://qiita.com/zr_tex8r/items/08ae8bf08aa29f18535c
576: 2019/10/09(水) 10:34:54.56
>>229
C、C++だとbreakで抜けられるのは、直前のループだけ。
212: 2019/10/08(火) 16:17:32.43
複数allocしたメモリを、異常終了時に纏めてfreeする時にgoto使うかな
217: 2019/10/08(火) 16:20:05.25
>>212
goto使うなというお触れでdoーwhile0にしてるhttps://qiita.com/ymko/items/ae8e056a270558f7fbaf
213: 2019/10/08(火) 16:17:33.34
毎日毎日ifとforばっかり
そんなに好きならどっちかと結婚すればいいでしょ!
230: 2019/10/08(火) 16:33:28.03
Cのような数値も受け付ける変態仕様ならしょうがないけど、pythonとかのようにifに書くのはBoolean型のみと決まってる言語なら==trueのような冗長な書き方はやめた方がいいと思う
258: 2019/10/08(火) 16:53:39.86
人生も同じや
263: 2019/10/08(火) 16:56:58.28
昔しunix系にあった、C言語の逆コンパイラは凄かった。
実行型をC言語のソースに戻すんだけど、if文の塊りで何が何だかw
当然サブルーチンになんかに分かれず、main関数のみのバカでかいプログラム。
283: 2019/10/08(火) 17:34:25.07
停止性判定問題とかチューリング完全とかその辺勉強してからまた来てhttps://eng-blog.iij.ad.jp/archives/3095
297: 2019/10/08(火) 17:43:33.68
後藤がどないしたんや?
300: 2019/10/08(火) 17:47:06.73
構造化プログラムだとgoto悪だけど、オブジェクト志向だとほぼgotoな例外処理ないと詰む
307: 2019/10/08(火) 17:56:24.80
たったそれだけのことなのに不思議とバグがでるよなあ
318: 2019/10/08(火) 18:12:53.59
この世にあるどんな高性能なコンピュータも入力・出力・分岐・繰り返し・演算の5つの能力しかない
349: 2019/10/08(火) 18:48:51.16
haskell使える人は尊敬する
424: 2019/10/08(火) 21:05:06.84
クラス作ってオブジェクト宣言してとかでGOTOとかいらんだろ。
ポリモーフィズムとか使えば勝手に飛んでってくれるし。

メインルーチンなぞ1画面くらいにしかならないんじゃないか?

477: 2019/10/08(火) 22:32:18.36
>>424
うん、その通りだな

変数宣言して専用や汎用のライブラリの関数やクラスメソッドで初期化して、パラメータを準備
これを必要な分、繰り返して、最後に関数やクラスメソッドに用意したパラメータを設定して呼び出してメインルーチン完成
1画面くらいで終わり、パラメータがなければ1行で終わり

440: 2019/10/08(火) 21:31:58.02
畏怖と後藤
第一話「コピペでいいじゃん」
446: 2019/10/08(火) 21:38:47.86
ifはtrue,falseにくわえてmaybeという概念加えてほしいと思う
467: 2019/10/08(火) 22:22:20.77
何にしても原理主義的なのはろくな結果を招かない
とは思う
475: 2019/10/08(火) 22:32:17.27
入力
出力
記憶
ループ
計算
判断
停止
521: 2019/10/09(水) 01:03:37.30
再帰は画期的だったけど、僕が覚えた頃はメモリーが足りなくてすぐにハングアップしたな。
535: 2019/10/09(水) 02:22:55.25
ABCは知ってても

それだけじゃ 困ります(><;

623: 2019/10/09(水) 21:55:40.59
gotoで頑張ってるコードを見たときは
なるほど確かにスパゲティだなと感心したよ
626: 2019/10/09(水) 23:00:23.30
もしもし後藤です。
653: 2019/10/10(木) 19:07:07.74
ヒューマンリソースマシーンというゲームをやれば高級言語が如何に素晴らしいか解ると思うwhttps://store.steampowered.com/app/375820/Human_Resource_Machine/?l=japanese
654: 2019/10/10(木) 19:13:32.74
>>653
計算やろうにも加減算しかないから乗算除算の実装が必要だからな
アルゴリズムってこうだよなーって思いながらなんとか全クリした

コメント