我知道我可以像这样使用逗号运算符
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 设置?