私はこのようにコンマ演算子を使用できることを知っています
for (int i = 1, j = 15; j>10; i++, j--) {
// do something neat
}
しかし、いくつかの記事は、コンマ演算子をforループ宣言の外で使用できることを示唆しているようです。
int j = 2, k = 4 ;
int x ;
// Assignment statement with comma operator
x = j + 1, k ;
ソース:http ://www.cs.umd.edu/~clin/MoreJava/ControlFlow/comma.html
また
int x = (expression) ? (i++,2) : 3;
ソース:https ://stackoverflow.com/a/12047433/1084813
これは、コード難読化コンテストや同僚を混乱させるための巧妙なトリックですが、どちらの例もコンパイルされません(Java 1.6、Eclipse Juno)。エラーは「割り当ての左側は変数でなければなりません」です。コンパイラの設定を調べて、不正なコードを防ぐために禁止できるかどうかを確認しましたが、運が悪かったのです。
どうしたの?コンマ演算子は、後で変更された古い仕様の一部でしたか?これらの例を書いた人々は、これを可能にする別のJavaセットアップを使用していますか?