式の値を調べてその結果、実行する文を変更する。プログラムを実行するときに通る道が分かれるというところから「条件分岐」といいます。
もっとも簡単な例をあげます。
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未満の数が出てきます。
コメントは入れなくても動きます。