条件分岐

条件分岐とは

式の値を調べてその結果、実行する文を変更する。プログラムを実行するときに通る道が分かれるというところから「条件分岐」といいます。

たとえば

もっとも簡単な例をあげます。

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 を使った条件分岐は次のような形になっています。

if (条件) {
   条件が成立するときに実行すること
}
else {
   条件が成立しないときに実行すること
}

else 部分は必要なければなくてもかまいません。その場合はこのようにします。

if (条件) {
   条件が成立するときに実行すること
}

コンパクトに書くと構造が見える

{ } の前後で改行をしなければ次のような形になっています。

if (条件) {条件が成立するときに実行すること}
else {条件が成立しないときに実行すること}

{   } の部分をブロックといいます。中は、いくつかの文が入ります。このブロックの前に何か条件を書いて、ブロックの内部の指令をやったり、やらなかったりするという書き方がこれからいくつか出てきます。このようなものを制御構造といいます。

ブロック内に文が1つだけしかないなら、{  }は省略できます。

if ( x > 0 ) z = x; else z = y;

この場合も読みにくくならないよう十分考慮して、{  }があるのが普通と考えておいた方が間違いが少なくなります。

課題

乱数を求め、それが 0.5 より大きい(今回は0.5は入らないものとする)ときには、「運勢上向き」、小さいときには「運勢下向き」と出るプログラムを作りなさい。(…にどちらが入るか考えよ)

ファイル名 Joken.java

/** 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未満の数が出てきます。

コメントは入れなくても動きます。

もくじ

聖愛高等学校
http://www.seiai.ed.jp/
Last Modified