プログラムの通り道 ~ プログラムが魔法でないとわかればプログラマになれる 13

プログラムの通り道

今まで説明してきたプログラムは全て 上から下に順番に 動くものでした。それで作れるプログラムもありますが、役に立つプログラムを作ろうとすると繰り返しや条件分岐が必要になります。条件分岐は「条件によって作業内容を変える」と説明してきたものです。

プログラムの命令だけを見ながら話をしても頭に入らないと思いますのでまずは既に知っているもので説明しましょう。

「すごろく」はご存知でしょうか。人生ゲームなどを思い浮かべても問題ありません。「すごろく」には「ふりだしに戻る」というマスがあります。進めてきたコマをスタート地点に戻さなければならないマスのことです。他にも「5マス戻る」などと書かれているマスもあるでしょう。こういった「ある地点からある地点まで戻す」という 命令 は、プログラムにおける 繰り返し と同じです。

例えば、プログラムの10行目に 4行目に戻る という命令を書くことができます。ただ、プログラムには「サイコロ」がありませんから10行目をスキップすることがありません。サイコロは常に「1」が出ると思ってください。10行目まで進むと常に4行目に戻ってしまうので永遠に終わらなくなってしまいます。「無限ループ」と呼ばれるものです。「ループ」は繰り返しという意味です。「無限ループ」にならないためには条件分岐が必要です。例えば、10行目の命令を「繰り返しを10回するまでは4行目に戻る」に変えれば、10回繰り返した後に(4行目に戻らずに)11行目に進みます。

「すごろく」には条件分岐も存在します。サイコロの目が1、2、3の場合は左の道を、4、5、6であれば右の道を、といったマスがあります。これはプログラムにおける条件分岐そのものです。この例でいえば「サイコロの目」が 条件 で「左の道か右の道か」というのが 分岐 です。

「すごろく」にはスタート地点が1つしかありません。プログラムも同様に開始する場所は1つしかありません。ただ、ゴールに関しては少し異なります。基本的な「すごろく」はゴールも1つです。色々な分岐した道があっても最終的に辿り着く共通のゴールが存在します。それに対してプログラムは終了地点が複数あることがあります。この辺りはゲームアプリをイメージした方がわかりやすいかもしれません。HP(ヒットポイント)が0になったらゲームオーバー(終了)、1以上であれば続きに進む、という分岐は自然に感じるでしょう。

このようにプログラムを作るのは「すごろく」を自作するのに似ています。いくつもの道を作り、それぞれのマスにコンピュータの命令を書いていきます。ときにはマスを戻らせる繰り返しも使うでしょう。ゲームとして面白いかどうかは別ですが「すごろく」を紙に書いて作ってとお願いされれば大抵の人は作れるのではないでしょうか。これができればプログラムを組み立てる素養があると言えるでしょう。

プログラムは文字しかありませんからコンピュータが通る道(どの命令が動くのか)を見極めるのは難しく感じるかもしれません。ですが、コンピュータが通る道を決める方法は「戻る(繰り返し)」か「どちらにするかの選択(条件分岐)」しかありません。プログラムの実際の書き方は最初慣れないと思いますが、根本的な動きを理解していれば挫折することなく理解を進めることができると思います。

>>続きを読む
>>全記事を見る

<最新話にご興味があればフォローお願いします>

この記事が気に入ったらサポートをしてみませんか?