forループとは
forループは、特定の回数だけ繰り返し処理を行うための構文です。
今回は、for ループの基本的な構造と九九の表などいくつかの出力を取り入れた説明と、無限ループの例、無限ループの制御方法、Eclipseで無限ループに入ったときの対処方法(トラブルシューティング)などを説明していきますので、マスターしておきましょう。
また、forループは、初期化、条件、変化式(更新)が1行にまとめられているため、読みやすく、管理しやすく、カウンタ変数を使った繰り返し処理に適しています。
for ループの構文
for (初期化; 条件式; 変化式) { // 繰り返し処理 }
基本的な例
1から10までの数を出力する
この例では以下のように、i が 1 から 10 までの値を取り、各値がコンソールに出力されます。
public class Main { public static void main(String[] args) { for (int i = 1; i <= 10; i++) { System.out.println(i); } } }
出力結果:
1 2 3 4 5 6 7 8 9 10
配列の要素を出力する
この例では、numbers 配列の各要素を出力しています。numbers.length は配列の要素数を返します。
public class Main { public static void main(String[] args) { int[] numbers = {10, 20, 30, 40, 50}; for (int i = 0; i < numbers.length; i++) { System.out.println(numbers[i]); } } }
出力結果:
10 20 30 40 50 60
九九の表を出力する
この例では、九九の掛け算の表を出力しています。内側の for ループが j を 1 から 9 まで繰り返し、外側の for ループが i を 1 から 9 まで繰り返します。
public class Main { public static void main(String[] args) { for (int i = 1; i <= 9; i++) { for (int j = 1; j <= 9; j++) { System.out.print(i * j + "\t"); // タブで区切り } 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
よくあるエラーと注意点
無限ループの例
無限ループは、条件が常に真 (true) であるため、ループが永遠に続く状態です。無限ループは意図的に使われることもありますが、誤って作成するとプログラムが応答しなくなる可能性があるため注意が必要です。
条件を指定しない無限ループ
この例では、for ループの初期化、条件、更新がすべて省略されています。この構文は無限ループを生成します。
public class Main { public static void main(String[] args) { for (;;) { System.out.println("This is an infinite loop."); } } }
条件が常に真の無限ループ
この例では、i が常に0以上であるため、条件 i >= 0 が常に真となり、無限ループが生成されます。
public class Main { public static void main(String[] args) { for (int i = 0; i >= 0; i++) { System.out.println("This is an infinite loop."); } } }
意図的な無限ループ
この例では、for ループの条件が省略されているため、無限ループが生成されます。
public class Main { public static void main(String[] args) { for (int i = 0; ; i++) { System.out.println("This is an infinite loop."); } } }
無限ループの制御
無限ループは意図的に使われることもありますが、通常は特定の条件を満たしたときにループを終了させるために break 文を使用します。
この例では、i が10になったときに break 文が実行され、無限ループを終了します。
public class Main { public static void main(String[] args) { for (int i = 0; ; i++) { System.out.println("This is an infinite loop."); if (i == 10) { break; // iが10になったらループを終了する } } System.out.println("Loop exited."); } }
コメント