式の値を調べてその結果、実行する文を変更する。プログラムを実行するときに通る道が分かれるというところから「条件分岐」といいます。
もっとも簡単な例をあげます。
if ( x > 0 ) {
z = 100;
}
else {
z = 200;
}
これは、x が0よりも少しでも大きいとき、z に 100 を代入。そうでないとき( x が0か、0より小さいとき)は z に 200 を代入するというものです。( xもzも前もって宣言してあるものとします )
実行する文が複数ある場合は、次のように書きます。
if ( x > 0 ) {
z = 100;
System.out.println ("x は正の数です。");
}
else {
z = 200;
System.out.println ("x は正の数ではありません。");
}
図で示すと次のようなイメージです。

if ( x > 0 ){ x > 0 のときの処理; } else { x > 0 でないときの処理; }
if を使った条件分岐は次のような形になっています。
if (条件) {
条件が成立するときに実行すること
}
else {
条件が成立しないときに実行すること
}
else 部分は必要なければなくてもかまいません。その場合はこのようにします。
if (条件) {
条件が成立するときに実行すること
}
{ } の前後で改行をしなければ次のような形になっています。
if (条件) {条件が成立するときに実行すること}
else {条件が成立しないときに実行すること}
{ } の部分をブロックといいます。中は、いくつかの文が入ります。このブロックの前に何か条件を書いて、ブロックの内部の指令をやったり、やらなかったりするという書き方がこれからいくつか出てきます。このようなものを制御構造といいます。
ブロック内に文が1つだけしかないなら、{ }は省略できます。
if ( x > 0 ) z = x; else z = y;
この場合も読みにくくならないよう十分考慮して、{ }があるのが普通と考えておいた方が間違いが少なくなります。
乱数を求め、それが 0.5 より大きい(今回は0.5は入らないものとする)ときには、「運勢上向き」、小さいときには「運勢下向き」と出るプログラムを作りなさい。(…にどちらが入るか考えよ)
/** Math.random() と if を使って運勢を占う */
public class Joken {
public static void main( String[] args ) {
double un;
un = Math.random(); //un に double (0~1)の値が入る。
System.out.println( "unの値" + un );
if ( un > 0.5 ){
System.out.println( "運勢…向き" );
}
else{
System.out.println( "運勢…向き" );
}
System.out.println( "以上 if の例" );
}
}
乱数は Math.random() です。()は( )の間にスペースがないものです。無駄に見えますが、必要です。0以上、1未満の数が出てきます。
コメントは入れなくても動きます。