[第6回] if文を利用した条件分岐を学ぶ|Unityで学ぶC#入門


「Unityで学ぶC#入門」の連載第5回は「演算子の使い方を学ぶ」でした。

第6回の今回はif文を利用した条件分岐についてご紹介していきます。

条件分岐はシステム開発でもゲーム開発でも使用します。理解していないとドツボにはまってしまうこともあるためしっかりと理解しておきましょう。

条件分岐

条件分岐とは

ある条件のときに特定の処理をさせることを「条件分岐」と言います。

↓条件分岐イメージ

条件分岐イメージ

このような条件分岐は日常生活でも多く使われています。

  • 駐車場の時間ごとの料金
  • チケットの大人料金、子供料金
  • BMI
  • ジェットコースターの身長制限

以上のように様々な場面で条件分岐が使用されています。

今回はその中でも駐車場の料金を例に用いて条件分岐のプログラムを記述していきます。

実例の条件を確認

では具体的に条件を決めていきましょう。

自分が車を止めていた時間を入力として、自分が支払う料金を出力するプログラムを記述します。

条件は以下のようにまとめました。

駐車時間(分) 料金(円)
~60 1,000
~120 1,500
~180 2,000
181~ 2,500

駐車してから60分以内は一律1,000円。そこから180分までは1時間ごと500円増えて、181分を超えると一律2500円という条件です。

ではこの条件を満たすようなプログラムを「if文」を利用して実現していきます。

if文の使い方

if文は以下のようにして条件を記述します。

まずは最上部を見てみましょう。

条件式1が「true」のとき、処理1を実行します。

条件式1が「false」のとき、下のelse文に移行します。

else文を確認します。

else文とは上段のif文が成立しないときに実行する部分で、「else if」とすることでif文と同じように条件を与えることができます。

つまり処理2は、条件1が「false」かつ条件2が「true」のときに実行されます。

同じく処理3は、条件1と2が「false」かつ条件3が「true」のときに実行されます。

最後に、全ての条件が「false」だった場合に処理Xが実行されます。

実例検証

正常コード

先ほど確認した駐車場の実例を実現するプログラムを記述します。

↓正常コード

↓実行結果(time = 30)

time=30

↓実行結果(time = 80)

time=80

↓実行結果(time = 150)

time=150

↓実行結果(time=210)

time=210

正常な結果が出力されることを確認できました。

問題コード

if文で問題が発生しうる部分を確認していきます。

次のコードで出力に問題が発生する理由を考えながら実行結果を確認してください。

↓問題コード

↓実行結果(time = 30)

問題time=30

timeが30のときは本来であれば料金は1,000円と出力されなければいけません。しかし、このコードだと2,000円と出力されてしまいます。

原因はif文の条件の順番にあります。

一番最初の条件で「time <= 180」としているため、入力値が30でも80でも150でも同じく出力が2,000円になってしまいます。

このように、条件分岐を使用するときは、条件を記述する順番にも気を使わなければいけません。

もし上記の問題を防ぎたい場合は、条件文をもっと具体的に記述する必要があります。

↓改善コード

マークしている行のように、値の範囲を明確にすることで問題を改善できます。

まとめ

いかがでしたでしょうか。

連載第6回となる今回はif文を利用した条件分岐の方法についてご紹介してきました。

if文を使用できるようになると、よりゲームらしさやシステムらしさを増したプログラミングをすることができるようになるのではないでしょうか。

条件分岐には他にもSwitch文を利用した方法などもありますが、if文をマスターすればさほど難しくは感じないと思います。

次回はメソッドの使用方法をご紹介いたします。

 

参考記事)Unityで学ぶC#入門


Furui