プログラムは三つのことを押さえておけばいい、って前に話したけど覚えている?
え、えっとー…
「条件分岐」「繰り返し」「計算」でしたっけ?
そう、それ!今回はその三つの基本についてさらに深ぼって解説していくよ。
今回の三つの基本を知ることで、プログラムがただの文字じゃなく命令のストーリーになっていることがわかると思う!
三つの基本のふりかえり
「条件分岐」「繰り返し」「計算」の三つがプログラムの基本だったね。
この三つを組み合わせることによって、プログラムは命令通りに動いていくんだ。
もう一つの前提として、プログラムは基本的に上から下に順番に実行されていくよ。
だからプログラムを読むときも上から順番に一行一行読んでいくってわけ。
横書きの文章は左から右、そして上から下に読むよね?
それと一緒で、プログラムも左から右で一行の命令・プログラムとなっていて、上から下に命令の順番が指定されていくってわけだね。
条件分岐とは何か
まずは「条件分岐」から。
「条件分岐」は、「もし〇〇だったら」という意味を持つプログラムだ。
もし晴れだったらピクニックに行く。もし雨だったら映画を見に行く。みたいな感じで日常生活にも実は溶け込んでいる「条件分岐」
Pythonのプログラムで表現すると、
If 条件式:
条件が正しい時にする処理
となるよ。
ここで注意点が、if文の「:」とその下のプログラムの空白部分
この二つがあることによって、どこからどこまでが条件が正しい時にする処理なのかを明確にできるんだ。
だから、例えば点数が80点以上なら「素晴らしい!」と表示して、条件に当てはまらない全ての人に「てっぱんでしたー!」と表示したい場合は…
If score >= 80:
print(“素晴らしい!”)
print(“てっぱんでしたー”)
となるわけ!
条件は常に正しいだけじゃなくて、条件が合わなかったときは別の処理をしたい場合もあると思う。
点数が80点以上の人には「素晴らしい」100点の人には「ファンタスティック!」その他の人には「次は頑張ろう!」とする場合だね。
プログラムだとこれをこんな感じで実装するよ。
If score >= 80:
print(“素晴らしい”)
elif score == 100:
print(“ファンタスティック”)
else:
print(“次は頑張ろう!)
最初の条件に合わないで、もう一つの条件に沿う場合は「elif」(elseとifを組み合わせた造語)
全ての条件に合わない場合は「else」というプログラムを使うんだ。
これが「条件分岐」の基本、すべてだよ。
最初は、elifなのかelseなのかわかりづらいと思うけど、実際に条件を微妙に変えたりすることで慣れてくると思う。
条件式の「==」ってなんですか?
これまで出てきたイコールは全て「=」だったと思うんですが…
良い着眼点だね!
プログラムでは「=」はイコールというよりかは、代入や右から左にデータを入れるというニュアンスが近かった。
でも今回の条件分岐では一般的なイコールと同じ意味を持たせたいから強調のためにも「==」を使っているわけ!
じゃあ、「>=」ってのは何?初めてみる形!
これは「左の値が右の値以上」という条件を表しているよ。
本当は「≧」と表現したいんだけど、プログラムの表記ではこれは表現できないから大なりとイコールを組み合わせているってわけさ!
繰り返しとは何か
次に「繰り返し」だ。
これはそのままの意味で、「〇〇の間、下の処理を繰り返す」というプログラムだよ。
夏休みの間、毎朝ラジオ体操に行くを繰り返す感じ。
Pythonのプログラムで書くならこんな感じだね。
for カウント変数 in range(回数):
繰り返す処理
「カウント変数」は何回繰り返したかを保存しておく変数を一時的に作る用で、「回数」というのが繰り返しを何回やるかを表す数字を入れる。
そんで、繰り返す処理っていうのが実際に繰り返したい処理を書くって感じだ。
「条件分岐」の時と同じく、注意点は「:」と処理の前の空白部分、これまたどこまでの処理を繰り返すかを限定するために重要な役割を持っているよ。
1から10までの数字を全て足した答えを出したい場合を想定しよう。
その時プログラムとしてはこうなるよ。
Number = 0
for i in range(11):
Number = Number + I
print(Number)
今回「i」というのがカウント変数で、繰り返すたびに1ずつ加算されていく。
回数は「11回」
つまり、11回分「Number+(1ずつ加算される変数)」をしているってわけ。
あれ、なんで11回なの?1から10なんだから10回じゃないの?
良いところに気がついた!これはリストのところでも話したプログラムは0から始まるからという話だよ。
繰り返すときのカウント変数も0から始まるんだ。
だから1回目の実行では「i は0」なんだ。だから普段考えている1から始まる世界とは異なる11回の足し算が必要になるってこと。
繰り返しは回数だけじゃなく、リストの中身の間を繰り返すこともできる。
Lunch = [“カレーライス”, “ラーメン”, “そば”, “うどん”]
for i in Lunch:
print(i)
とすると、結果として
「カレーライス
ラーメン
そば
うどん」
という結果が出力されるよ。
繰り返すたびに「i」にリストの中身を順番に入れているってわけだね。
ここまでが一通りの繰り返しだよ。
繰り返す回数あたりが最初は難しいから、初めのうちは繰り返し処理の中に「print(i)」のような表現を入れておくと繰り返しのたび、iに何が入るのかがわかると思う。
計算とは何か
今回最後の「計算」
これはこれまでやってきた通り、リストを定義したり、足し算や引き算をしてみたりの処理のことを表すよ。
Lunch = [“カレーライス”, “ラーメン”, “そば”, “うどん”]
とか
Number = Number + I
とか。
条件分岐でも、繰り返しでもない、表現のことを「計算」とひとまとまりにして考えることで何を表現させたいのかがわかるようになる。
プログラムをまずは人間語で考えてみるといいかもしれない。
こんな感じ
「Numberという数字を準備して、10回+10足し算を繰り返す。もしも10回繰り返した結果が100以上なら「パンパカパーン」と出力して、そうじゃなかったら「Numberを変えてみよう!」と出力する」
こう考えてから、実際にプログラムを上から順番に書いていくよ。
Number = 10
For I in range(10):
Number = Number + 10
If Number >= 100:
print(“パンパカパーン”)
else:
print(“Numberを変えてみよう”)
という感じで書けるよ。
こうしてみると、プログラムがなんだかストーリーになってくるように見えないかな?
順番に条件分岐や繰り返しを使って計算を進めていく。
やりたいことが明確に人間語になっていれば、プログラムを書くのも比較的容易なんだ!
まとめ
今回はプログラムの三つの基本「条件分岐」「繰り返し」「計算」をやってきたわけだけどどうだったかな?
ストーリーに感じはしなかったけど、雰囲気は掴めてきたかな。
ただもう一、二回は繰り返して復習するよ。
私はだんだん、ストーリー感じてきました。
自分でストーリーを思い描いてみてプログラムが書けるまで復習をしようと思います。
二人ともいいね。どっちにも「繰り返し」という考えが用いられた表現だ!
じゃあ次回は、プログラムを作っていく上で大事な関数の表現や他の人のプログラムで楽をする方法を紹介していくよ。