いちばんやさしいゲームの作り方

文系の人でも、数理学がわからない人でもゲームプログラミングをマスターできるブログ

if 文を使うことで、複数の可能性の中からひとつ分岐を選択して、その分岐に含まれる文を実行することができます。

if 文の形式

if 文は次のいずれかの形式をとります。

if ( /* 条件 */ ) {
  /* 条件が成立する場合に実行される文 */
}

もっとも簡単なケースです。条件が成立する場合に中の文を実行します。もし、条件が成立しなかった場合は何も実行しません。

if ( /* 条件 */ ) {
  /* 条件が成立する場合に実行される文 */
} else {
  /* 条件が成立しない場合に実行される文 */
}

これも基本的なケースです。前のケースと同様に条件が成立する場合に中の文を実行しますが、条件が成立しなかった場合には else の中の文を実行するようになります。このケースは、条件が成立した場合でも成立しなかった場合でも、必ず何らかの文が実行されるという点で前のケースと異なります。

if ( /* 条件 */ ) {
  /* 条件が成立する場合に実行される文 */
} else if ( /* 条件n */ ) {
  /* 条件nが成立する場合に実行される文 */
}

条件が増えたケースです。この文に遭遇すると、まず if の条件を判定します。もし、 if の条件が成立していれば中の文を実行し、この if 文を抜けます。ですが、もし if の条件が成立していなかった場合は、続けて else if の条件を判定します。 else if の条件が成立していた場合は else if の中の文を実行し、この if 文を抜けます。 else if はいくつでも追加することができますが、先頭から条件を判断していき、どれかひとつでも条件が成立していた場合は、その中の文を実行して if 文を抜けてしまう点に注意してください。このケースは、条件をひとつも満たさなかった場合は何も実行しません。

if ( /* 条件 */ ) {
  /* 条件が成立する場合に実行される文 */
} else if ( /* 条件n */ ) {
  /* 条件nが成立する場合に実行される文 */
} else {
  /* どの条件も成立しない場合に実行される文 */
}

基本的に前のケースと同じ意味ですが、どの条件も成立しない場合に else の中の文が実行される点が異なります。

if 文の条件

if 文へ条件を指定するためには、式、関係演算子、論理演算子のいずれか、またはそれらの組み合わせを指定することができます。詳しくは次の記事を参照ください。

たとえば、変数 key の値が SPACE_KEY と等しいかを判定する場合は次のように書きます。

if (key == SPACE_KEY) {
  // key が SPACE_KEY と等しい場合にここが実行される
  ShotByPlayer();
}

C/C++ の if 文は、条件として式を指定することができますが、他の言語では指定できない可能性があります。たとえば Java では条件として式を指定することはできません。 C/C++ で if 文の条件に式を指定できるのは、結果が 0 になる場合を false 、結果が 0 以外になる場合を true と判断しているからです。たとえば次の if 文は問題なく動作します。

if (life) {
  // life が 0 でないうちはなにもしない
} else {
  // life が 0 になったらゲームオーバー
}

この形式を進んで使う必要はありませんが、他人のソースを読む際などに役立ちますので覚えておきましょう。

if 文のネスト

if 文の中に if 文を書くことができます。たとえば次の if 文は問題なく動作します。

if (player.state == ALIVE) {
  if (key == SPACE_KEY) {
    // player.state が ALIVE と等しく、
    // かつ key が SPACE_KEY と等しい場合にここが実行される
    ShotByPlayer();
  }
}

Contributions




Trackback URL

メルマガ登録・解除
 
挫折不可能!初級ゲームプログラミング完全マニュアル
RSS track feedいちばんやさしいゲームの作り方 カウンター
ブログSEO対策:track word あわせて読みたい SEO STATUS