条件によって違うことを実行したい場合には、if文やswitch文といった条件文を用います。
if文は以下の形をしています。
if ( 条件式 ) { ブロック1 } else { ブロック2 };
ここで条件式は「条件判断をするための式」です(下記参照)。ブロック部分をインデント(字下げ)して、
if ( 条件式 ) { ブロック1 } else { ブロック2 };
と書いたほうがわかりやすいです。
プログラムの流れとしては、条件式が
が実行されます。
また、偽の場合に実行すべきものがない場合には、 「 else { ブロック2 } 」の部分を省略することができます。
条件式には、等式や不等式に代表されるtrue(真)またはfalse(偽)のブール値(真偽値)を持つ式を記述することができます。
数値や文字列の比較をします。Perlとは異なり、数値でも文字列でも同じ比較演算子を用います。文字列どうしの比較は文字コード順(ほぼ辞書順)になります。文字列と数値を比較した場合には、文字列を数値にキャスティングした結果で比較を行います。
比較演算子 | 読み | 例 |
---|---|---|
< | より小さい | x < 4 |
> | より大きい | x > 4 |
<= | 以下 | x <= 4 |
>= | 以上 | x >= 4 |
== | 等しい | x == 4 |
=== | 厳密に等しい | x === 4 |
!= | 等しくない | x != 4 |
「厳密に等しい」は、型を含めて等しい場合にのみ真になります。
複数の条件式の組み合わせで複雑な条件式を作ることができます。「かつ(and)」、「または(or)」などを論理演算子といいます。
論理演算子 | 読み | 例 |
---|---|---|
|| | 論理和(または) | 条件式1 || 条件式2 |
&& | 論理積(かつ) | 条件式1 && 条件式2 |
! | 否定 | ! 条件式 |
真理値表(||、&&)
条件式1 | 条件式2 | || | && |
---|---|---|---|
true | true | true | true |
true | false | true | false |
false | true | true | false |
false | false | false | false |
真理値表(!)
条件式 | ! |
---|---|
true | false |
false | true |
var x = 9; // 判定する数字
if ( ( x % 2 == 1) && ( x % 3 == 0 ) ) {
trace("xは「奇数かつ3の倍数」です。");
} else {
trace("xは「奇数かつ3の倍数」ではありません。");
};
3つ以上の場合分けをする場合はif文を重ねて分岐を行います。 すなわち、if文のブロック中でif文を使用 します。このような使い方を「入れ子にする」といいます。
if ( x % 3 == 0 ) { trace("3で割り切れます。"); } else { if ( x % 3 == 1) { trace("3で割った余りは1です。"); } else { trace("3で割った余りは2です。"); } };
このような場合、簡単に書く方法としてelse ifが用いられます。else ifを 用いたif文は以下の形をしています。入れ子の形にならないのでプログラムがわかりやすくなります。
if ( 条件式1 ) { ブロック1 } else if ( 条件式2) { ブロック2 } else { ブロック3 };
else部分をelse ifに変えていくことで、 さらに多くの場合分けでも対応することができます。
式の値により結果を複数に分岐させたい場合には、switch文を 使うと簡単に記述できます。switch文は以下の形をしています。
switch (式) { case 式1: ブロック1; break; case 式2: ブロック2; break; : default: ブロックn; break; }
case部分は分岐したい数だけ記述することができます。
式を評価した結果が、式1から順に、評価した値と一致するかどうか調べられます。 一致した場合には、一致したブロックから下の命令がbreak文の あるところまで全て実行されます。break文が実行されると switch文の後ろまで実行が飛びます。
すべての式に一致しない場合には、defaultのブロックが実行されます。
var x=9; switch (x % 3) { case 0: trace("3で割り切れます。"); break; case 1: trace("3で割った余りは1です。"); break; default: trace("3で割った余りは2です。"); break; };
Programming Laboratory (Shio seminar)