@204504bySE そうなんですよね
判断(if)と繰り返し(while,for)が基礎として身についてない感じなんですよ
コントローラーのAボタンを見ながら押してる感じなので、これを実現するには繰り返せばよい、って落とし込め無いというか…
@kumanotetu gotoでやればいいじゃん→gotoだとみんな間違えるのでwhileやforを作りました という流れを説明してあげる必要があります。
@204504bySE そうですね
そのあたり説明するうえでスコープも説明できそうですし
@kumanotetu スコープの話が出ると、今度は変数の寿命の話が必要になって、スタックとヒープの話になりますね。ローカル変数はスタックに突っ込まれて、変数を宣言した瞬間に場所が確保されて、{ } を抜けた瞬間に捨てられて、その場所は他の変数がいずれ使うと。ローカルじゃない変数はヒープに確保するのでそういう寿命はないと(GCなどは後でいいかと)
@kumanotetu C言語でよくある「ローカル変数のアドレスをポインターに入れてしまい当然動かない」はこれを知ってれば防げます。そう、これを誰も教えてくれません。
@204504bySE 値渡しと参照渡しなど、Cのポインタを理解できたらその後だいたいの言語で活きますよね
@204504bySE
大学とかで習うと最初にやる変数定義の基礎ですね
これ理解してないと配列や参照わからなくなるんですよね
やっぱりしっかりその辺から説明していきたいなぁ
少なくとも来年度の新人さん向けにその辺やろうと思います(今年度はその辺理解してそうだったのでやらず。。)
@kumanotetu forにしろwhileにしろ、if+gotoの糖衣構文に過ぎないのですが、それを教えない入門書がやたら多くて、そしてみんなそこで躓くという。平気な人は考えるまでもなくそれをわかっているだけのことです。