ぎるばーとのノート

もっともっと遠くへ行きたい 空が広く見える場所まで

Javaの知られざる構文〜幻のfor-while文

【この記事はジョーク記事です!】

 この件に関連して……。

 あまり知られていないのだけど、初期のJavaに、for文とdo-while文を組み合わせたfor-while文というのがありました。いつ頃からか、言語規定に載らなくなりましたが、最新版でもコンパイル・実行が可能です。

// for-while文の例
int i;
for (i = 0; i < 5; i++) {
    System.out.println(i);
} while (i < 5);

 iはメモリに記憶されますが、ループ判定のタイミングでCPU内のレジスタに読み込まれます。

 宇宙空間や過酷な放射線環境下で使用する機器では、メモリは放射線対策していることが多いですが、CPUは特に何でもないものを使ったりするそうです。そこで、CPU内のビット反転に対する耐性を高めたい場合に使用できる構文ということだったのですが……。
 うーん、可読性や保守性が悪すぎたのか……。幻の構文となってしまいました。





 ……信じましたか?(^^;

 「種明かし」しましょう。上のコードは、for文の後ろに「中身が空っぽ」のwhile文が続いているだけです。つまり、

// for-while文の例
int i;
// for文
for (i = 0; i < 5; i++) {
    System.out.println(i);
}
// while文
while (i < 5)
    ;

 まあ、いくら何でもそんな変な構文あるわけないですね!(信じてしまった方は、悪意の人間に騙されないよう気をつけて……。)