図1 条件分岐 if文 | 図2 条件分岐 if-else文 |
if ( 式 ) 文
ただし、式の計算結果は論理値(trueまたはfalse)でなければいけない。int a = -10; if (a < 0) a=-a; // a の値が負なら符合を反転 (つまり絶対値を計算) System.out.println(a); // 絶対値を表示a の値が負ならば、a = -a が実行される。a の値が 0 以上ならば、 何もせず次にいく。つまり、a の絶対値を計算するプログラム(の一部)である。 では、if文の条件が真の場合実行される処理に複数の文を書きたい場合はどうするのか?
{ 文1 文2 ... 文n}
ブロックを指定するためには、ブレース { } で複数の文を囲むだけで良い。ブロックの中の文は順次実行される。 ブロックを利用する時は、プログラムを見易くするために、正しくインデントを行うことに注意する。 if文の例2 (ブロックを利用)int a = -10; if (a < 0) { // ブロック始まり a = -a; // a の値が負なら符合を反転 (つまり絶対値を計算) System.out.println("負の値のため、符合を反転"); } // ブロック終り System.out.println(a); // 絶対値を表示if文の文にブロック(ブレース)を初めから入れていない場合、後から文を加え たときにブレースをつけ忘れるとプログラムが意図とは異なるプログラムになる ため、if文ではなるべくブレースを付けることが推奨される。
if ( 式 ) 文1 else 文2
ただし、式の計算結果は論理値(trueまたはfalse)でなければいけない。 if-else文の例1/*変数aの値は偶数か奇数かを判断してメッセージを出力する。*/ int a = 10; if (a % 2 == 0) { // a を 2 で割ったあまりが0ならば System.out.println(a+"は偶数"); // 2でぴったり割れたので偶数 } else { System.out.println(a+"は奇数"); // あまりが出たので奇数 }if-else文の例2
/*変数aと変数bで、値の大きい方を変数maxに代入する。*/ int a = 10; int b = 12; int max; if (a > b) { max = a; // a の方が大きい } else { max = b; // b の方が大きい、または a と等しい } System.out.println(max);