Java - switch文


■ページ目次

Top
■switch 文(条件分岐)
Top
■例題
  1. コマンドラインから入力した月の日数を出力するアプリケーション"Days01.java"を作成してください。
    1. public class Days01 {
    2. public static void main(String[] args) {
    3. int month = Integer.parseInt(args[0]);
    4. int days;
    5. switch (month) {
    6. case 1: days = 31;
    7. break;
    8. case 2: days = 28;
    9. break;
    10. case 3: days = 31;
    11. break;
    12. case 4: days = 30;
    13. break;
    14. case 5: days = 31;
    15. break;
    16. case 6: days = 30;
    17. break;
    18. case 7: days = 31;
    19. break;
    20. case 8: days = 31;
    21. break;
    22. case 9: days = 30;
    23. break;
    24. case 10: days = 31;
    25. break;
    26. case 11: days = 30;
    27. break;
    28. default: days = 31;
    29. break;
    30. }
    31. System.out.println(month + " 月は " + days + " 日です。");
    32. }
    33. }

    □ 実行結果

    $ java Days01 2
    2 月は 28 日です。
    
Top
■break 文を省いた switch 文
■例題
  1. 上記アプリケーション"Days01.java"で、break 文を多くても 3 つになるように改造("Days02.java")してください。
    1. public class Days02 {
    2. public static void main(String[] args) {
    3. int month = Integer.parseInt(args[0]); // コマンドラインからの引数をint型に変換します。
    4. int days; // 日数
    5. switch (month) { // 月
    6. case 1:
    7. case 3:
    8. case 5:
    9. case 7:
    10. case 8:
    11. case 10:
    12. case 12:
    13. days = 31;
    14. break;
    15. case 2:
    16. days = 28;
    17. break;
    18. default: // 上記以外の月
    19. days = 30;
    20. break;
    21. }
    22. System.out.println(month + " 月は " + days + " 日です。");
    23. }
    24. }

    □ 実行結果

    $ java Days02 2
    2 月は 28 日です。
    
Top
■実習
  1. (オプション)
    上記アプリケーション
    "Days02.java"で、コマンドラインからの引数の数が1でない場合や、1から12の範囲内にない場合のチェックも入れてください。("Days02a.java")
    なお、以降のアプリケーションでは、引数のチェックはオプションとして、クラス名:"クラス名+a"として作成してください。
  2. □ 実行結果

    $ java Days02a
    引数を 1 つ指定してください。
    
    $ java Days02a -1
    1 ~ 12 の間の値を指定してください。
    
    $ java Days02a 13
    1 ~ 12 の間の値を指定してください。
    
  3. コマンドラインから入力した 3 つの異なる数字が、アプリケーション内で設定されている 3 つの異なる数字といくつあっているかどうかを判定するアプリケーション"Match01.java"を作成してください。このとき、合っている数によって、つぎのようにメッセージを変えてください。
    1. public class Match01 {
    2. public static void main(String[] args) {
    3. int a0 = 3;
    4. int a1 = 5;
    5. int a2 = 8;
    6. int n0 = Integer.parseInt(args[0]);
    7. int n1 = Integer.parseInt(args[1]);
    8. int n2 = Integer.parseInt(args[2]);
    9. // ここにコードを記述してください。
    10. }
    11. }

    □ 実行結果

    $ java Match01 8 4 6
    やっと合いましたね。
    
  4. (オプション)
    上記アプリケーション"Match01.java"で、引数をつぎの項目について検査してください。("Match02.java")
    1. public class Match02 {
    2. public static void main(String[] args) {
    3. // ここにコードを記述してください。
    4. int a0 = 3;
    5. int a1 = 5;
    6. int a2 = 8;
    7. int n0 = Integer.parseInt(args[0]);
    8. int n1 = Integer.parseInt(args[1]);
    9. int n2 = Integer.parseInt(args[2]);
    10. // ここにコードを記述してください。
    11. }
    12. }
    $ java Match02
    引数は3個指定してください。
    
    $ java Match02 1 2 34
    34 は範囲外です。
    
    $ java Match02 1 2 2
    同じ数が指定されています。
    
Top

inserted by FC2 system