Javaの勉強5 ループ

最終更新:2006/01/30

トップページへ戻る
前へ 次へ

5-1. for文

    指定した回数だけ処理を繰り返す場合に用います。

    文法の説明

        for (初期状態; 終了条件; 継続処理) {
            処理;
        }

    サンプル 1
public class ForTest1 {
    public static void main(String args[]) {
        for(int i = 1; i <= 10; i++) {
            for(int j = 1;j <= i; j++) {
                System.out.print("△");
            }
            System.out.println("");
        }
    }
}
    実行結果
△
△△
△△△
△△△△
△△△△△
△△△△△△
△△△△△△△
△△△△△△△△
△△△△△△△△△
△△△△△△△△△△
    サンプル 2
public class ForTest2 {
    public static void main(String args[]) {
        for(int i = 10; i >= 0; i--) {
            for(int j = 1;j <= i; j++) {
                System.out.print("△");
            }
            System.out.println("");
        }
    }
}
    実行結果
△△△△△△△△△△
△△△△△△△△△
△△△△△△△△
△△△△△△△
△△△△△△
△△△△△
△△△△
△△△
△△
△
    サンプル 3
public class ForTest3 {
    public static void main(String args[]) {
        int keisan = 0;
        for(int i = 1; i <= 9; i++) {
            for(int j = 1;j <= 9; j++) {
                keisan = i * j;
                if(1 >= keisan || keisan <= 9) {
                    System.out.print("  " + keisan);
                } else {
                    System.out.print(" " + keisan);
                }
            }
            System.out.println("");
        }
    }
}
    実行結果
  1  2  3  4  5  6  7  8  9
  2  4  6  8 10 12 14 16 18
  3  6  9 12 15 18 21 24 27
  4  8 12 16 20 24 28 32 36
  5 10 15 20 25 30 35 40 45
  6 12 18 24 30 36 42 48 54
  7 14 21 28 35 42 49 56 63
  8 16 24 32 40 48 56 64 72
  9 18 27 36 45 54 63 72 81


5-2. while文


    ある条件が真である間、ループを繰り返します。

    文法の説明

    while (条件式) {
        処理;
    }
    サンプル 1
public class WhileTest1 {
    public static void main(String args[]) {
        int i = 1, j = 1;
        while (i <= 10) {
            j = 1;
            while (j <= i) {
                System.out.print("△");
                j++;
            }
            System.out.println("");
            i++;
        }
    }
}
    実行結果
△
△△
△△△
△△△△
△△△△△
△△△△△△
△△△△△△△
△△△△△△△△
△△△△△△△△△
△△△△△△△△△△
    サンプル 2
public class WhileTest2 {
    public static void main(String args[]) {
        int i = 10, j = 1;
        while (i >= 0) {
            j = 1;
            while (j <= i) {
                System.out.print("△");
                j++;
            }
            System.out.println("");
            i--;
        }
    }
}
    実行結果
△△△△△△△△△△
△△△△△△△△△
△△△△△△△△
△△△△△△△
△△△△△△
△△△△△
△△△△
△△△
△△
△
    サンプル 3
public class WhileTest3 {
    public static void main(String args[]) {
        int i = 1, j = 1, keisan = 0;
        while (i <= 9) {
            j = 1;
            while (j <= 9) {
                keisan = i * j;
                if (1 >= keisan || keisan <= 9) {
                    System.out.print("  " + keisan);
                } else {
                    System.out.print(" " + keisan);
                }
                j++;
            }
            System.out.println("");
            i++;
        }
    }
}
    実行結果
  1  2  3  4  5  6  7  8  9
  2  4  6  8 10 12 14 16 18
  3  6  9 12 15 18 21 24 27
  4  8 12 16 20 24 28 32 36
  5 10 15 20 25 30 35 40 45
  6 12 18 24 30 36 42 48 54
  7 14 21 28 35 42 49 56 63
  8 16 24 32 40 48 56 64 72
  9 18 27 36 45 54 63 72 81


5-3. do-while文

    do-while文は条件式の評価がループの最後に行われる為、最初の1回が必ず実行されます。

    文法の説明

    do {
        処理;
    } while (条件式);

    サンプル1
public class DoWhileTest1 {
    public static void main(String args[]) {
        int i = 1, j = 1;
        do {
            j = 1;
            do {
                System.out.print("△");
                j++;
            } while (j <= i);
            System.out.println("");
            i++;
        } while (i <= 10);
    }
}
    実行結果
△
△△
△△△
△△△△
△△△△△
△△△△△△
△△△△△△△
△△△△△△△△
△△△△△△△△△
△△△△△△△△△△
    サンプル2
public class DoWhileTest2 {
    public static void main(String args[]) {
        int i = 10, j = 1;
        do {
            j = 1;
            do {
                System.out.print("△");
                j++;
            } while (j <= i);
            System.out.println("");
            i--;
        }  while (i > 0);
    }
}
    実行結果
△△△△△△△△△△
△△△△△△△△△
△△△△△△△△
△△△△△△△
△△△△△△
△△△△△
△△△△
△△△
△△
△
    サンプル3
public class DoWhileTest3 {
    public static void main(String args[]) {
        int i = 1, j = 1, keisan = 0;
        do {
            j = 1;
            do {
                keisan = i * j;
                if (1 >= keisan || keisan <= 9) {
                    System.out.print("  " + keisan);
                } else {
                    System.out.print(" " + keisan);
                }
                j++;
            } while (j <= 9);
            System.out.println("");
            i++;
        } while (i <= 9);
    }
}
    実行結果
  1  2  3  4  5  6  7  8  9
  2  4  6  8 10 12 14 16 18
  3  6  9 12 15 18 21 24 27
  4  8 12 16 20 24 28 32 36
  5 10 15 20 25 30 35 40 45
  6 12 18 24 30 36 42 48 54
  7 14 21 28 35 42 49 56 63
  8 16 24 32 40 48 56 64 72
  9 18 27 36 45 54 63 72 81

5-4. ループを制御する(break文, continue文)
    break文が実行されると、ループが終了していなくてもループから抜けます。
    continue文が実行されると、いったんループの先頭に戻ります。

    サンプル1 (break)
public class BreakTest {
    public static void main(String args[]) {
        int i, j;
        for(j = 1; j <= 10; j++) {
            for(i = 1; j <= 10; i++) {
                System.out.print(i + " ");
                if(i == j) {
                    System.out.println("\n");
                    break;
                }
            }
        }
    }
}
    実行結果
1 

1 2 

1 2 3 

1 2 3 4 

1 2 3 4 5 

1 2 3 4 5 6 

1 2 3 4 5 6 7 

1 2 3 4 5 6 7 8 

1 2 3 4 5 6 7 8 9 

1 2 3 4 5 6 7 8 9 10 
    サンプル2 (continue)
public class ContinueTest {
    public static void main(String args[]) {
        int i;
        for(i = 1; i <= 10; i++) {
            if(i % 2 == 0) {
                continue;
            } else {
                System.out.print(i + " ");
            }
        }
    }
}
    実行結果
1 3 5 7 9 


5-5. 拡張for

    J2SE 5.0ではfor文が拡張され、次の書き方が可能となりました。

    配列の要素取り出し、可変配列を実行するコレクションへのアクセスするコードなどを簡潔に記述することができます。

    文法の説明

        for (変数宣言: 参照変数名) {
            処理;
        }

    サンプル 1
public class ForExTest1 {
    public static void main(String args[]) {
        int [] num = {1, 2, 3, 4, 5};
        for (int n: num) {
            System.out.println(n);
        }
    }
}
    実行結果
1
2
3
4
5
    サンプル 2
public class ForExTest2 {
    public static void main(String args[]) {
        String [] moji = {"PHP", "Java", "Servlet", "Webアプリケーション", "SQLインジェクション対策"};
        for (String s: moji) {
            System.out.println(s);
        }
    }
}
    実行結果
PHP
Java
Servlet
Webアプリケーション
SQLインジェクション対策
トップページへ戻る
前へ 次へ
Copyright© 2005- Naoyuki Sano. All rights reserved.