解答例 - j1.lesson03.ChanceOfRain

package j1.lesson03;

import java.io.*;

/**
 * 課題0303 - 解答例.
 @author s.arakawa
 @version $Id: ChanceOfRain_java.rps,v 1.1 2006/03/06 12:56:15 java2005 Exp $
 */
public class ChanceOfRain {

    /**
     * コンソールに0以上100以下の降水確率を入力させ、その値によって様々な文字列を表示するプログラム。
     @param args 無視される
     @throws IOException 入力中に例外が発生した場合
     */
    public static void main(String[] argsthrows IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        System.out.print("降水確率を入力してください:");
        int chance = Integer.parseInt(reader.readLine());
        
        // 方針
        // 数直線を書き、条件を小さい順に並び替える
        // if-elseの連鎖を用いて小さい順に条件を網羅していくことにより
        // 複雑な条件判定を行わずに、条件にあった結果を列挙できる
        
        // 降水確率が 0 未満であるか?
        if (chance < 0) {
            System.out.println("降水確率は0から100の間で指定してください。");
        }
        
        // そうでなければ (= 降水確率が 0 未満 でない = 降水確率が 0 以上)
        // 降水確率が 20 未満であるか?
        // -> 降水確率が 0 以上 20 未満であるか?
        else if (chance < 20) {
            System.out.println("傘は要りません。");
        }
        
        // そうでなければ (= 降水確率が 20 未満でない = 降水確率が 20 以上)
        // 降水確率が 50 未満であるか?
        // -> 降水確率が 20 以上 50 未満であるか?
        else if (chance < 50) {
            System.out.println("雨が降るかもしれません。");
            System.out.println("傘を持って行ったほうが良いでしょう。");
        }

        // そうでなければ (= 降水確率が 50 未満でない = 降水確率が 50 以上)
        // 降水確率が 100 以下であるか?
        // -> 降水確率が 50 以上 100 以下であるか?
        else if (chance <= 100){
            System.out.println("傘を持って行ったほうが良いでしょう。");
        }
        
        // そうでなければ (= 降水確率が 100 以下でない = 降水確率が 100 より大きい)
        // 常に以下を実行
        // -> 降水確率が 100 より大きいか?
        else {
            System.out.println("降水確率は0から100の間で指定してください。");
        }
    }
}