C#のIf文、Switch文をUnity付属のMonoDevelopを使って勉強する

C#のIf文、Switch文をざっくり勉強していきましょう!

C#のと言ってますが、ほとんどのプログラミング言語共通の書き方なので一度覚えてしまえば、他の言語で使う時も対応はすぐに可能ですね(^_^)v

今回もUnity付属のMonoDevelopを使用してスクリプトの記述をしていきます。

スポンサーリンク

If文

If文はその名のとおり「もし」を判定する条件文を記述出来るものです。

例えば、

  • 100円以下だったらお菓子を買うけど違ったら買わないとか
  • 100円以下だったらお菓子を買う、120円以下だったらジュースを買う、それ以外だったら何も買わない
  • と条件によって処理を分けたい時に使います。

    条件が成立した中でさらに条件を判定する。と言った事も出来ます。

    If文の書き方

    If文の書き方は

    ↑のように単一の条件が成立した時のやり方、ifとelseで最初の条件が成立したかしないかのやり方、if-else if-elseを使って一つ一つ条件が成立するかどうかを判定するやり方があります。

    条件式に何を記述するのか?

    条件式の部分には条件を書きますが、条件として判定するのはbool値(真偽値)でtrueかfalseの値を返す式を記述する必要があります。

    その為、条件式にtrueやfalseそのものを書くと言う事も出来ます。

    条件式にはbool値を指定すればいいので、式を指定する事が出来ます。

    ↑のように5 < 10という式は5は10より小さい為、bool値のtrueが得られるのでif文内の処理は実行されます。 2番目のif文では比較演算子を使い同じ値かどうかを判定しています。 メソッドでbool値を戻り値にしていれば、

    ↑のように条件式内にメソッド呼び出しも入れる事が出来ます。 メソッド呼び出しでint型の値を得られたとしたら、その値を使って式を作り条件に設定する事も出来ます。

    条件式を反転する時は!記号を使います。 さきほどの条件式を反転してみます。

    ↑でCheckメソッドを呼び出して1が返ってきて、その後(1 < 2)という条件式でtrueになりますが、その後!で反転しているので結果としてfalseになります。 ifの中を書き換えると、

    ↑のようにtrueを反転してfalseになっているのと同じなので、if文内の処理は実行しません。

    条件文のネスト

    条件式が成立した時にその中でさらに条件を絞ると言う事も出来ます。

    ただし、複雑にネスト(階層を深くする)をした条件文を作成すると、後で解析する時に大変になるので、なるべく深い階層は作らない方がいいです。

    文字を見ただけじゃわからないので実際に作ってみましょう。

    お金が200円以上あればケーキを買い、120円以上あればジュースを買う、100円より少なく50円以上あればお菓子を買い、なければ何も買わない

    という条件文を作ってみます。

    持っているお金をmoneyとし条件文を書きました。

    ↑を実行するとコンソールに『何も買わない』と表示されます。

    何も買わないって・・・( ノД`)シクシク…

    論理演算を使って複数条件を設定

    条件式には論理演算を使って複数の条件を設定する事が出来ます。

    If文でよく使うのは論理積(AND)と論理和(OR)ですね。

    論理積は全ての条件が真の時成立し、論理和の場合はどれかの条件が真の時成立します。

    論理積は&&記号、論理和は||記号で表す事が出来ます。

    ↑の例では1番目のIf文は実行され、2つ目のIf文は実行されません。

    intValueの値を10にすると、1番目のIf文は実行されず、2番目のIf文は実行されます。

    先ほどの持っているお金によって条件分岐をさせたIf文を&&を使って書き換えると

    となります。

    この&&と||ですが、最初の条件が成立されなかった場合次の条件判定をせずに終了します。

    ↑の例でいくと、Check1メソッドではfalseが返ってくる為、Check2メソッドは実行しないのでコンソールに「Check2」は表示されません。

    &と|を使えば条件が成立しなくても実行します。

    演算子に関しては

    で詳しく解説されていますので、参照してください。

    Switch文

    Switch文を使うと条件に合わせた処理を行う事が出来ます。

    ↑のように数値によって分岐させています。

    breakでその条件の実行を終了します。

    条件に合致した時の処理を記述しない時で、breakを記述しなければその下のケースを実行します。

    ↑の例では数値が2、3だった時は同じ処理が実行されることになります。

    実際にSwitch文を使ってみましょう。

    ↑の例ではintValueが2なので「2or3」をコンソールに出力します。

    C#のバージョンによっては数値以外で条件分岐をする事が出来るみたいです。

    その辺りは

    C#リファレンスを参照してください。

    わたくしのMonoDevelopはC#3.0バージョンかなぁ?

    おわりに

    最初はこの記事で、If、Switch、For、ForEach、Whileを全てまとめてやろうとしたんですが、例によってIf文だけで長くなってしまいましたのでIf文とSwitch文のみにしました・・・(^_^;)

    For、ForEach、Whileを長くなっても纏めてやってみようと思います。<(`^´)>

    スポンサーリンク

    記事をシェアして頂ける方はこちら

    フォローして頂くとやる気が出ます