gpt4 book ai didi

Java - 循环声明外的逗号运算符

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:03:18 24 4
gpt4 key购买 nike

我知道我可以像这样使用逗号运算符

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 设置?

最佳答案

https://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.27

15.27. Expression

<...>

Unlike C and C++, the Java programming language has no comma operator.

关于Java - 循环声明外的逗号运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12601596/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com