我知道我可以这样使用逗号运算符
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;
来源:http://codingdict.com/questions/144878
对于代码混淆竞赛或使我的同事困惑,这将是一个绝妙的技巧,但是两个示例都无法编译(Java 1.6,Eclipse Juno),错误是“分配的左侧必须是变量”。我尝试查看编译器设置,以查看是否可以禁止它以防止错误代码,但没有运气。
怎么了?逗号运算符是旧规范的一部分吗?编写这些示例的人是否使用允许此操作的其他Java设置?
怎么了?
在C中起作用的一些技巧在Java中不起作用。
逗号运算符是旧规范的一部分吗?
这在Java AFAIK中从未起作用。
编写这些示例的人是否使用允许此操作的其他Java设置?
假定Java与C或C 类似,这是一个常见错误,因为它很相似。SO上的大部分编码错误是由于人们试图用Java编写C 而在它没有达到他们期望的目标时感到困惑。
顺便说一句:假设C 就像Java,因为我对C 的了解不是最新的,所以我犯了同样的错误。
但是有些技巧可以使Java正常工作,但可能不适用于C。
您可以使用所有货币符号,也可以使用一些看起来最多的货币符号。
例如
if( ⁀ ‿ ⁀ == ⁀ ⁔ ⁀ || ¢ + ¢== ₡)
您可以使用不可见的字符和c对,在打印时可以反转其余行的顺序。;)
该程序编译并运行并打印您可以在Java标识符中使用的所有奇数字符
for (char ch = 0; ch < Character.MAX_VALUE; ch++) if (Character.isJavaIdentifierPart(ch) && !Character.isJavaIdentifierStart(ch)) System.out.printf("%04x <%s>%n", (int) ch, "" + ch);
这使得它太容易了。
http://vanillajava.blogspot.co.uk/2012/08/uses-for-special-characters-in- java-code.html
http://vanillajava.blogspot.co.uk/2012/09/hidden- code.html