[PR] 迷惑メール トップページプロ3ゼミJavaJava入門講座一学期単位3 →2時間目

2時間目 柔軟なプログラムを書くには
(if〜else文と組合せ)

3−2−1.if〜else文

 if文を使う事によって、もしもの時にはこの処理をさせる事ができるプログラムを組めました。
もし…ならばこの文を実行される又は、そうでなければこの文を実行させるプログラムは、if文を2つ書かなけ れば実現できません。
「x > y」のif文と「x <= y」のif文のようにです。
これでは不便なため、if〜else文を使う事によりこの不便さを解消できます。

 構文は次の通りです。

if (条件式)
    文;
else
    文;
 条件が成立しなかった場合にelseにある文が実行されます。
elseは、ifが無いとコンパイルエラーになり、常にセットで書かなくてはなりません。
もし条件式が真ならばifの文をそうでなければelseの文が実行されます。
ブロックを組み合わせる事により、elseも複数の文を書く事ができるのは、他で使うブロックと同じです。

 Sample1は、if〜else文を使ったプログラムです。

Sample1.java
public class Sample1 {
    public static void main(String[] args) {
        new IfElse().view();
    }
}

class IfElse {
    void view() {
        int     x = 10, y = 0;
        
        int     z;
        if (y > 0) {
            z = x / y;
        } else {
            z = 0;
            System.out.println("yが0です。");
        }
        
        System.out.println("z = " + z);
    }
}
yが0です。
z = 0

3−2−2.if文、if〜else文の組合せ

 if文、if〜else文をそれぞれ組み合わせる事により、判断が分けた時に柔軟な処理ができます。
例をいくつか紹介します。

●例1

if (条件式) {
    文;
} else if (条件式) {
    文;
}
●例2
if (条件式) {
    文;
} else if (条件式) {
    文;
} else {
    文;
}
●例3
if (条件式) {
    文;
} else if (条件式) {
    文;
} else if (条件式){
    文;
} else {
    文;
}
 例1は、if〜else文とif文の組合せです。
elseの文にif文を書く事により実現しています。
if文も文ですから、elseの入れ子にする事により最初のif条件で偽ならelseの文、つまり2回目のif条件が判 断されます。
2回目のif条件が偽なら例1の文はどれも実行されません。

 例2は、例1に2回目のifに対してのelseを書きます。
この事により、2回目のif条件が偽なら2個目のelseの文が実行され、例2は必ずどれかの文が実行されます。

 例3は、例2にもしもの条件を増やす事により判断の数を増やしています。
例2にと同じように、必ずどれかの文が実行されます。
プログラムを見る時に、必ずifに対してのelseがある場合(if〜else文か)はどこかのif文の条件が違ってい てもそうではないelseに行き渡るため必ずどれかの文が実行される事がわかります。
さらに例3にif〜else文を増やす事は可能です。
それは、構文でも示したようにif文は、文だからです。

 例1、例2及び例3の書き方に注目すると、2回目以降のif文はelseのすぐ脇に書かれていますが、これは見や すくするために書かれた書き方であり文法又は構文エラーでなければ書き方は自由です。
if文、if〜else文は、プログラマそれぞれ書き方が異なる構文の一つでしょう。
プログラマそれぞれの書き方ができるのもプログラムの柔軟性です。
例1、例2及び例3はもっとも一般的な書き方です(文が一つの場所はブロックを付けない人もいます)。
組合せで注意しないといけないのが、elseif文は存在しない事です。
ここをくっつけて書いてしまうと、文法エラー及び構文エラーとなり、コンパイルエラーになります。

 これでプログラムで判断が分かれた時に適切な処理をする事ができます。
単位3 1時間目 柔軟なプログラムを書くには(if文)でも説明したswitch文は方法の違 いこそありますが、if文、if〜else文又はその組合せで実現できます。


単位2 ソースの基本に戻る     3時間目 ユーザからの入力に柔軟に対応するに進む

単位3 判断が分かるときはに戻る

トップページに戻る