解答例 - j1.lesson06.ToOrdinal

package j1.lesson06;

import java.io.*;

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

    /**
     * コンソールから0以上の整数を入力させ、
     * その数の序数表現の略語 (0th, 1st, 2nd, 3rd, 4th) を表示するプログラム。
     * ただし、11th, 12th, 13th で終わる略語は考慮しなくても良い。
     @param args 無視される
     @throws IOException 入力中に例外が発生した場合
     */
    public static void main(String[] argsthrows IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        System.out.print("0以上の整数を入力:");
        int number = Integer.parseInt(reader.readLine());

        // 0未満ならエラー
        if (number < 0) {
            System.out.println("0以上の数を入力してください");
        }

        // 100 で割ったあまりが 11 ~ 13 の時は特殊
        // (課題ではこの部分は考慮しないでよい)
        else if (11 <= (number % 100&& (number % 100<= 13) {
            System.out.println(number + "th");
        }

        // あとは 10 で割ったあまりで判断
        else {
            switch (number % 10) {
                // ..1st
                case 1:
                    System.out.println(number + "st");
                    break;
                // ..2nd
                case 2:
                    System.out.println(number + "nd");
                    break;
                // ..3rd
                case 3:
                    System.out.println(number + "rd");
                    break;
                // ..nth
                default:
                    System.out.println(number + "th");
            }
        }
    }
}