if ( 条件1 ){ 文1 }else if ( 条件2 ){ 文2 }else if ( 条件3 ){ 文3 }else if ( 条件4 ){ . . . }else{ 文n } |
これは、条件1が真の場合は、文1が実行され、条件1が偽で条件2が真の場合、
文2が実行され、更にそれらが偽である場合は条件3が判断され、という具合に
最初の条件から順番に判断がされていき、それら全部が偽である場合には、
文 n が実行される。注意すべきは、条件1で真ならば、文1のみが実行され、
以下の条件 x は、すべて無視されると言う点である。これは、どの部分でも
同じで、条件3が真ならば文3が実行され、その後の条件は全て無視して、
if 文の実行から抜ける。(最後の行の }
の後の文の実行に移る。)
また、最後の else{...}
はなくても良く、その場合、条件 1 〜 n
に当てはまらなければ、何も実行されず }
以降の文の実行に移る。
例 5 if ( x > 0 ){ z = 1; }else if ( x == 0 ){ z = 0; }else{ z = -1; } |
この例の場合、x
が正の場合、z
に1を代入し、x
が
0に等しい場合、z
に0を代入し、以上のどれでもない場合 ( 即ち、
負の場合 ) 、z
にー1を代入することになる。
例 6 1: if ( x > 7 ){ 2: y = 7; 3: }else if ( x > 6 ){ 4: y = 6; 5: }else if ( x > 5 ){ 6: y = 5; 7: }else if ( x > 8 ){ 8: y = 8; 9: } |
この例では、1行目で x
が7より大きい場合は全て y
に7を
代入し、もし、x
が7以下である場合で、x
が6より大きいならば
y
に6を代入しているが、注意すべきは、例えば x = 8
の場合、
最初の1行目で既に真になっているので、以降の if 文の判断はされないという
ことである。従って、3行目は実際には、 という条件になって
しまう点に注意しよう。更に、そのために、7行目で行なっている判断は常に
偽になってしまうので、8行目の文はどんな場合でも絶対に実行されることはない。
また、この例では、else 文がないので、
x
が5以下の場合は、y
には何も代入されない。