連載プロデルでプログラミング入門の第3話です。今回は、条件に応じて、実行することを分ける条件判断文について紹介します。前回は、変数を使って値を記憶する機能を説明しましたが、変数に入った値に応じて、実行するプログラムを切り替える方法をご紹介します。

その前に…「文」と「式」の話
その前に、これからよく出てくる「文」と「式」という言葉について説明します。プロデルのプログラムは、文と式が組み合わさって書かれています。
文とは
文とは、命令の単位です。基本的に1つの文は、1つの指示を表しています。プロデルでは、プログラムの1行に付き、1つの文を書きます。
「ようこそ!」と表示する
また「。」を使うことで一行に2つ以上の文を書くこともできます。
「こんにちは」と報告する。「さようなら」と報告する
文には、いくつかの種類があり、「呼び出し文」「代入文」「条件判断文」「繰り返し文」をよく使います。すでにご紹介した文もありますが、このシリーズで残りの文も紹介していきます。
式
プロデルでは、文を実行する時に必要な情報となる単語の組み合わせを「式」と言います。すでに紹介した計算式や変数、数字は、「式」の一種です。プロデルでは、文を実行する時に、その文に書かれた式を評価(計算)して、その結果を使って文の指示を実行します。
1+1 「こんにちは」 プレゼント
また、数字(123など)や文字列(「こんにちは」) を定数と呼びます。定数も式の一種です。
条件分岐する「条件判断文」
指定した条件に応じて実行するプログラムを変えるには、条件判断文(もし文)を使います。例えば、変数の内容に応じて表示する内容など変える、といった用途に条件文を使います。
条件文は、次のように書きます。
《条件式》なら
《実行するプログラム》
そして
条件文では、《条件式》の条件を満たしたときに《実行するプログラム》を実行してくれます。条件を満たしたときのプログラムは、『○なら』から『そして』の間に、書いていきます。
例えば、次のように書くと「点数」変数の値が100の時に「満点!」と表示されます。
点数は100
点数が100なら
「満点!」と表示する
そして
満点!は点数が100の時だけに表示されます。例えば「点数」変数に100以外の値を入れて実行すると、メッセージは表示れません。
条件を満たさなかったとき
条件文では、『そうでなければ』と書くと、その前の条件を満たさなかったときに実行するプログラムを書くこともできます。
点数は100
点数が100なら
「満点!」と表示する
そうでなければ
「頑張りましょう」と表示する
そして
たくさんの条件を書く
条件を満たさなかったときに、さらに別の条件を満たすかどうか判断することもできます。その場合は、「他で」を使います。
次のプログラムでは、点数が100点ではなく、60点以上だった時に「よく頑張りました!」と表示します。「変数」の数値を変えて実行してみましょう。
点数は75
点数が100なら
「満点!」と表示する
他で点数が60以上なら
「よく頑張りました!」と表示する
そうでなければ
「頑張りましょう」と表示する
そして
条件判断文にたくさんの条件を書いた場合には、条件が上から順番に判断されることに注意しましょう。また条件を満たすと、それ以降に書かれた条件は判断されず「そして」までジャンプします。

「そして」を使わずに書くには
なお、プログラムが一行で納まる場合には「そして」は不要です。
点数が100なら「満点!」と表示する
そうでなければ「頑張りましょう」と表示する
また、プログラムを『 』という記号を使って「そして」を使わずに書くこともできます。
点数が100なら『
「満点!」と表示する
』
そうでなければ、『
「頑張りましょう」と表示する
』
サンプル: おみくじゲームを作る
条件判断文を使って、おみくじゲームを作ってみましょう。
「くじ」変数に0から5までの値が入れて、0なら大吉、1なら凶、2なら小吉、それ以外は「中吉」といった具合に、くじの結果を表示するプログラムを作ります。
くじは、3
くじが0なら
「大吉」と表示する
他でくじが1なら
「凶」と表示する
他でくじが2なら
「小吉」と表示する
そうでなければ
「中吉」と表示する
そして
「くじ」の値を変えながら実行してみましょう。
ただ「くじ」の内容を手動で書き直して実行するのは、面白くありません。そこで具体的な数値を入れる代わりに『0から5までの乱数』と書き直してみましょう。「乱数」を使うと0から5までのサイコロを振ってその結果を「くじ」に代入してくれます。
くじは、0から5までの乱数
「乱数」を使うと、いちいち「くじ」の数字を書き直さなくても、実行する度に数値をランダムに決めてくれます。

条件式の書き方
条件判断文の《条件式》に書く条件式には、値が等しいかどうかだけでなく、大小比較などの条件も書けます。
単純な条件式
□と◇は、式(変数や数字、文字列、計算式など)を表します。
| 条件式の表記 | 意味 |
|---|---|
| □が◇ □=◇ | □と◇が等しい |
| □≠◇ | □と◇が等しくない |
| □が◇より大きい □>◇ | □が◇より大きい |
| □が◇より小さい □が◇未満 □<◇ | □が◇より小さい |
| □が◇以上 □≧◇ | □が◇以上 |
| □が◇以下 □≦◇ | □が◇以下 |
複雑な条件式
上記の単純な条件式を2つ組み合わせて、「かつ」や「または」と言った複数の条件を一度に条件判断することもできます。なお条件式は( )で囲んで書くこともできます。
| 条件式の表記 | 意味 |
|---|---|
| 《条件式》でない | 《条件式》を満たさないとき |
| 《条件式1》または《条件式2》 《条件式1》あるいは《条件式2》 | 《条件式1》か《条件式2》のどちらかが正しい |
| 《条件式1》かつ《条件式2》 | 《条件式1》と《条件式2》のどちらも正しい |
例えば、複雑な条件式を使うと、2つの変数の値を一度に判別することもできます。
国語は50
数学は70
合格点は60
国語が合格点以上かつ数学が合格点以上なら
「合格です」と表示する
そうでなければ
「不合格です」と表示する
そして
『~でない』を使うと、条件を満たさないときにだけという意味になります。
英語は50
合格点は60
英語が合格点以上でなければ
「追試です」と表示する
そして
※『でないなら』を『でなければ』と書くこともできます。
サンプル: 時刻に合わせて挨拶を変える
今の時刻に合わせて挨拶してくれるプログラムを作ってみましょう。『今の時』と書くと、PCの時計の時刻から「時」の部分を調べてくれます。「時針」変数に、今の時刻の時(0~23)の数値が入っているので、条件判断文を使って「時針」変数の値に応じて時刻を判断して挨拶を変えられます。
時針は、今の時
時針が11未満なら
「おはようございます」と表示する
他で時針が17未満なら
「こんにちは」と表示する
そうでなければ
「こんばんは」と表示する
そして
(補足) 分岐文
プロデルには、条件判断文に似た機能を持つ文として「分岐文」があります。分岐文を使うと、ひとつの変数について処理を分けるプログラムを簡潔に書けます。
おみくじゲームを分岐文を使って書き直した例文を紹介します。
くじは、0から5までの乱数
くじについて分岐
0の場合
「大吉」と表示する
1の場合
「凶」と表示する
2の場合
「小吉」と表示する
他の場合
「中吉」と表示する
分岐終わり
練習問題!
前回のボディマス指数(BMI)の計算プログラムで、計算したBMIに応じて「痩せ型」「普通」「肥満」のどれかを判定するプログラムを作ってみましょう。BMIの判定は次の表の通りに作ってみましょう。
| BMI値 | 判定 |
|---|---|
| 18.5未満 | 痩せ型 |
| 18.5〜25未満 | 普通 |
| 25以上 | 肥満 |
まとめ
条件判断文を使って、変数の値を判定して実行する事を変える方法を紹介しました。条件判断は、プログラミングでよく使う機能ですので、書き方が分からなくなったときは、この記事を思い出して下さい。
次回もお楽しみに。
※当ブログの記事の著作権はゆうとにあります。プロデルに関係が無い目的で、文章や図表,プログラムを複製したり改変して掲載することを堅く禁止します






