条件分岐に使用される制御構文
条件分岐で使用される構文は2つです。
・if文(条件を満たす場合に実行する処理を記述)
・switch文(変数の値によって処理を分岐)
上記2つの構文はどちらも同じ結果を出力するコードの書き方ができますが、それぞれの構文の核となるイメージを記述しました。
if文は特定の範囲で条件を満たすような値を扱う場合、switch文は値が定まっている場合に使用します。そこに追加情報を加えて、処理する内容を拡張していくイメージです。
ここで言う追加情報とは、「指定した条件を満たさない場合の処理」や「指定した条件以外の時の処理」を指します。
if文
まずはシンプルなif文を記述します。
所持金が10000以上であれば、コンソールにテキスト文を出力するといった処理を書いてみます。実行するとコンソールに出力結果が表示されます。
int money = 12000; //所持している金額
if (money >= 10000) //moneyの値が10000以上であれば次の処理を実行
{
Debug.log("私は温泉旅行に行きます")
}
ここで、moneyに設定している値を10000より小さい値にするとどうなるか。
条件を満たさないので、中括弧の中に記述した条件処理の行が実行されません。この場合の出力結果は何も起こらないという結果になります。(パソコンの中ではしっかり判定処理をしています。)
条件を満たした時の出力結果だけが欲しい場合はこの記述でもOKですが、条件を満たさなかったときも何からしら結果を出力して確認するようにした方が、システム開発のミスも減らせると思います。
次のコードで条件を満たさない場合の処理も記述してみます。
int money = 12000;
if (money >= 10000)
{
Debug.log("私は温泉旅行に行きます")
}
else //上記の条件を満たさない場合は次の処理を実行
{
Debug.log("私は家でゲームをします")
}
else文を使うことで条件を満たさない場合の処理も実行することができるようになります。上記の記述では条件を満す場合と満たさない場合のどちらの出力結果も分かるので、条件分岐が正しく処理されていることを確認することができます。
次に条件を複数設定する場合を見てみます。
int money = 8000;
if (money >= 10000)
{
Debug.log("私は温泉旅行に行きます")
}
else if (money >= 5000)
{
Debug.log("私は買い物に行きます")
}
else
{
Debug.log("私は家でゲームをします")
}
プログラムコードは基本的に上の行から順番に実行されます。今回のコードでは1つ目の条件を満たさないので、1つ目の条件で記述している処理は実行されません。2つ目の条件の判定に移ります。2つ目の判定では条件を満たすので、2つ目の処理が実行されます。2つ目の条件が満たされたので、3つ目以降の条件に関しては判定処理は行わずにスキップされます。
条件の分岐は何個でも設定可能です。上から順に判定処理を行い、条件を満たした時に中括弧の中に記述した処理を実行します。
if (条件1)
{
//条件1が true だった時の処理
}
else if (条件2)
{
//条件2が true だった時の処理
}
else if (条件3)
{
//条件3が true だった時の処理
}
else
{
//どの条件も満たさない場合の処理
}
条件式が1行しかなく、elseの条件も必要ない場合は、中括弧を省略した書き方もできます。
int money = 12000;
if (money >= 10000) Debug.log("私は温泉旅行に行きます")
開発規模が大きくなるほどシンプルで行数の少ないコードでシステムを動かすスキルが求められるようになってきますので、このような記述方法も徐々に使いこなせるようになると良いかと思います。