public class ForLoopWithBlockUpdate {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
System.out.print("Number: " + i);
// 偶数の場合は3倍にして表示
if (i % 2 == 0) {
System.out.println(" (Tripled: " + (i * 3) + ")");
i *= 3; // ブロック内での更新式
} else {
System.out.println();
}
}
}
}
このプログラムでは、for
ループのブロック内でi
が偶数の場合に3倍にし、それに基づいてi
を更新しています。このような条件に基づく更新は、ブロック内でのみ実行されるため、通常のfor
文の更新とは異なる結果が得られます。
for文のブロックの中で更新式を書く
for
文の構造では、更新式は通常ループのブロックの外に書かれますが、必ずしもそのように制約されているわけではありません。Javaでは、for
文のブロック内にも更新式を書くことができます。これは、ある条件が成り立つときに特定の処理を実行し、その後に更新式を行う場合などに便利です。
以下は、for
文のブロック内で更新式を書く例です:
public class ForLoopWithUpdateInsideBlock {
public static void main(String[] args) {
// for文のブロック内で更新式を書く
for (int i = 1; i <= 5; i++) {
System.out.println("Loop iteration: " + i);
// ブロック内の処理
if (i < 5) {
System.out.println("Updating i inside the block.");
i += 2; // 更新式
}
}
}
}
この例では、for
ループのブロック内でi
を出力し、i
が5未満の場合に更新式 i += 2
を使ってi
を2ずつ増加させています。ブロック内での更新は条件に基づいて特定のタイミングで行われ、通常のfor
文の更新式とは異なります。このような使い方は特殊な場合に限られるかもしれませんが、柔軟性があります。