つきすけ の コーディング記

細かいところで嫌にならないように、小さいことでも解説していくブログ。たまに関係ないことも書く。

【第二回】(変数と条件分岐)0からプログラミングについて勉強する

前回
tsukisuke.hateblo.jp


今回は、変数と条件分岐のお話。

是非言葉で目をそらさないでほしい。
大して難しくない。

忙しい人向け

※これが理解できるならば、あとはすっ飛ばしてよし。
※余力があれば最後の章だけ見て。

変数とは

a = 2

があったとして、これはあとから書き換えが可能。

a = 2
a = 3
#最終的には「a=3」と記憶している。

つまり中身が書き換えることのできる入れ物を、変数と呼ぶ。
今回でいう a
反対の言葉もあるけど、しばらく出会うことはないと思う。

条件分岐

もし~だったらどうする?
逆にそうじゃなかったらどうする?
以下、試しに、a が 2 だったら、1 を足し、そうでなかったら 3 を足すプログラムを書いてみた。
(if と else で表現されるのが一般的)

if a is 2
 # 条件を満たす場合
 a + 1 をしてください
else
 # 条件を満たさない場合
 a + 3 をしてください

もちろん、a = 2 と教えてあれば、a + 1 をして 3 になるし、
a が 2 以外の数字なら、a + 3 をする。

以上




のんびり理解したい人向け

じっくりやろうぜ。

変数

その名の通り、変わる数のことを言う。

例えば前回のように、次のお願いをした。

a = 1

これでCPUは、 a は 1 のことなんだと覚えてくれる。

しかし、人間にも都合ってものがある。
「あ、やっぱり 2 って覚えてほしい!」と思うことがある。
そして付け足す。

a = 1
a = 2 

するとCPU様は、「 a は 1 なんだ.... いや、2 なんだ!と、覚え直してくれる。

いやはや便利。そしてここでこの言葉の登場。
a 変数 と呼ぶのだ。だって、変わることがあるから!

また、多くの言語では、 a は変数ですよと最初に教えておく。だって突然変えたらかわいそうだし。
そのため、大抵そう言う指示の書き方があるということだけ言っておく(割と言語による)


中身が変わる可能性があるからそれだけよろしく、という人間のわがままが示されていると言うこと。

それを(この場合は a のことを)変数と呼ぶ。


条件分岐

条件で分岐する=条件を教えるから、それに沿って計算を変えてね。よろしく♪

。。。例えば、最初にCPU様にこう教える。

a = 1
a = 2

CPU: a は 1 なんだ。いや、やっぱり 2 なんだ。

人間は意地悪をする。
人間:(このCPUは、本当に 2 と覚えただろうか? 試してみよう)
人間: 「もし a が 2 と覚えているのだったら、次の計算をしてみてくれ」

a + 1

人間: (これで 3 と答えたら、あっているぞ)
CPU: 3 です
人間: よかろう!!

、を、プログラム上で実行する。残念ながら細かいところはプログラミング言語によって変わってしまうのだが、だいたい共通するのが次の文章。

if (人間が指定した条件を満たしている)
 ここに書いた計算などを実行する

そう、大抵英語の if で表す。というか、難しいことをやりたいわけでもない限り、if で表現しない言語に出会うことはない。

そして便利なことに、「それ以外の時」を実行する書き方がある。else と書く。
もちろん、最初に if がないと機能しないので、else を使いたいときはこんな感じになる。

if (人間が指定した条件を満たしている)
 ここに書いた計算などを実行する
else
 それ以外の場合はこっちを実行する

else はその他であり、それ以外で在り、条件を満たしていないもの、であるのであるのである。

さて、ここで最初に戻って、
人間: 最初に a = 2 と教えて、本当に a = 2 と覚えているか、試してみよう。

a = 2 # 教える
if ( a が 2# 条件
 a + 1 # 条件に一致していればこっちが実行される
else
 a + 3 # 一致していなければこっちが実行される

さて、CPUはなんて答えるでしょうか?
考えてみてくださいな。
答えは記事の一番下に書いておきます。

あと、条件の書き方も言語によるのだけれど、それの大まかな概念はまた次の機会に。。。

以上




余力がある人へ

変数について

さっきの話を振り返れば当たり前のように感じるが、よく学習者にはこんな表現が使われる。

「後に来たものが、前の中身を上書きする」

まあ、複雑になってくると、こういう理解がいいのかもしれない。

条件分岐について

こちらには大抵「条件を満たす」という表現が使われる。
プログラムではこの条件分岐が多用される。
「現在ライフルの弾丸がないならば、リロードする、リロード中は撃てない」
そういうこと。

else は結構大事な概念で、else がないとエラーが出やすい。
人間が条件を書き忘れると、CPUは路頭に迷ってオーバーヒートする。





のんびり理解したい人向けの方へ出したさっきの問題の答え
CPU: a は 3 です