Java forループをマスター:構文、例、ベストプラクティス
Java forループをマスター
このチュートリアルでは、明確な例、詳細なステップバイステップ説明、ベストプラクティスガイドラインでJavaのforループの使い方を説明します。
ループを使用すると、コードブロックを繰り返し実行できます。同じ文を何十回も書く代わりに、ループが繰り返しを自動化し、労力を節約しエラーを減らします。
Javaには3つの主要なループ構造があります:
- forループ
- whileループ
- do…whileループ
この記事はforループに焦点を当てています。他の2つのループタイプについては、当サイトの他のチュートリアルを参照してください。
Java forループ
forループは、反復回数が事前にわかっている状況に最適です。その構文は古典的なCスタイルのループを反映しています:
for (initialExpression; testExpression; updateExpression) {
// ループ本体
}
各コンポーネントの説明:
- initialExpression – 変数を初期化し、1回だけ実行されます。
- testExpression – 各反復前に評価され、
trueの場合ループ本体が実行されます。 - updateExpression – 各反復後に実行され、通常ループカウンタを変更します。
- testExpressionが
falseと評価されるまでループが繰り返されます。
testExpressionで使用される論理演算子については、Java関係演算子と論理演算子ガイドを参照してください。
例1: メッセージを5回表示
class Main {
public static void main(String[] args) {
int n = 5;
for (int i = 1; i <= n; ++i) {
System.out.println("Java is fun");
}
}
}
出力
Java is fun Java is fun Java is fun Java is fun Java is fun
反復の内訳:
| 反復 | 変数 | 条件 (i <= n) | アクション |
|---|---|---|---|
| 1回目 | i = 1n = 5 | true | Java is fun 出力; iが2になる |
| 2回目 | i = 2n = 5 | true | Java is fun 出力; iが3になる |
| 3回目 | i = 3n = 5 | true | Java is fun 出力; iが4になる |
| 4回目 | i = 4n = 5 | true | Java is fun 出力; iが5になる |
| 5回目 | i = 5n = 5 | true | Java is fun 出力; iが6になる |
| 6回目 | i = 6n = 5 | false | ループ終了 |
例2: 1から5までの数字を表示
class Main {
public static void main(String[] args) {
int n = 5;
for (int i = 1; i <= n; ++i) {
System.out.println(i);
}
}
}
出力
1 2 3 4 5
反復テーブルは前の例と同様で、メッセージの代わりに現在のカウンタ値を表示します。
例3: 1から1000までの自然数の合計
class Main {
public static void main(String[] args) {
int sum = 0;
int n = 1000;
for (int i = 1; i <= n; ++i) {
sum += i; // sum = sum + i
}
System.out.println("合計 = " + sum);
}
}
出力
合計 = 500500
ループは1から1000までの各整数をsumに加算します。降順の代替形式でも同じ結果が得られます:
class Main {
public static void main(String[] args) {
int sum = 0;
int n = 1000;
for (int i = n; i >= 1; --i) {
sum += i;
}
System.out.println("合計 = " + sum);
}
}
Java for-eachループ
配列やコレクションを反復処理する場合、for-each構文は簡潔でエラーが起きにくいです:
class Main {
public static void main(String[] args) {
int[] numbers = {3, 7, 5, -5};
for (int number : numbers) {
System.out.println(number);
}
}
}
出力
3 7 5 -5
各ループ反復で次の配列要素がnumberに割り当てられ、インデックス管理の必要がなくなります。
Java for-eachループについて詳しく学びましょう。
Java無限forループ
テスト式が決してfalseにならない場合、無限ループが発生します。一般的には避けられますが、ループ制御を示します:
class Infinite {
public static void main(String[] args) {
for (int i = 1; i <= 10; --i) {
System.out.println("Hello");
}
}
}
iが1から始まり、条件が<=10をチェックしながらデクリメントされるため、条件は無限にtrueのままで、"Hello"がJVMがメモリ不足になるまで出力され続けます。
Java