条件はイエスかノーか ~ プログラムが魔法でないとわかればプログラマになれる 14

もし◯◯に使える条件はイエスかノーで答えられるものだけ

let age = 19;

if (age < 20) {
    alert("お酒は販売できません");
}

このプログラムは20歳未満の場合にお酒を販売できないと画面に表示するものです。このプログラムでは age の内容を 19 としましたが、この 19 の部分は 2025 など他の数も入れて動かしてみると考えてください。 age19 であれば「お酒は販売できません」と表示されます。 age20 であれば何も表示されません。 age が何を指しているかによって動きが変わります。

このプログラムを日本語で説明すると次のようになります。

19 を age と呼んで使えるようにする
もし age が 20 未満だったら { } の中に入っている命令を動かす
{ 画面に「お酒は販売できません」と表示する }

「もし◯◯だったら」という日本語は少し堅苦しいのであまり日常で使わないかもしれません。ですが同様の意味の日本語は頻繁に使われています。「雨が降ったら延期です」は「もし雨が降ったら延期です」と同じですし「時間があったら会いましょう」も「もし時間があったら会いましょう」と同じです。 ある場合にだけ何かする という表現は私たちが物事を考えたり意思疎通する上で大切なものです。

これをコンピュータに伝える命令が if という単語で始まる命令です。ifは「もし」の意味の英単語です。日本語もそうですが「もし」には必ず 条件 が必要です。このプログラムの場合、条件は「age が 20 未満だったら」の部分のことです。これがないと「もし」は成り立ちません。「もし延期です」「もし会いましょう」と言われても意味がわかりません。プログラムにおける if も同様に 条件 が必ず必要です。命令の書き方は次のようになります。

if (条件) { 条件が成立した場合に動かす命令 }

( ) と { } は似ていますが異なる記号です。括弧の種類を間違えるとコンピュータは意味を理解できないので注意が必要です。

さて、プログラムにおける 条件 はどのようなものでしょうか。コンピュータにとって 条件 は「成立する」か「成立しない」かしかありません。人間であれば「成立しそう」とか「成立しないかも」などいろいろと解釈できますが、コンピュータは必ず「成立する」か「成立しない」かが決まるものしか扱えません。

条件 は必ず二択になる、というのは一見シンプルですがシビアとも言えます。私たちが「雨が降ったら延期です」といった場合、いったいどの程度雨が降ったら延期なのでしょうか。一滴だけ雨が降っても普通は延期しないでしょう。かといって何ミリ降れば延期にすると決めているわけでもありません。開催に支障が出るほど雨が降ったらという意味でしょうが考えてみるととても曖昧な条件です。人間は曖昧な条件であっても様々なことを考慮して自己判断できますが、コンピュータに対して「常識的に判断して」とは言えません。

必ず二択になる条件というのはどういうものでしょうか。まずは数を使った条件が考えられます。ある数が「1以上である場合」とか「13と等しい場合」といった条件は必ずイエスかノーかの二択で答えられます。このプログラムで使った「age が 20 未満だったら」も必ずイエスかノーか答えられる条件です。数を使わなくても「この文字とあの文字が同じだったら」といった条件も利用できます。このようにプログラムではイエスかノーかはっきりする条件しか使えません。

なお、多くのプログラミング言語ではイエスには true 、ノーには false を使います。数学で使う真か偽かという意味のものです。

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

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

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