在第559页的表达式里提到java语言没有逗号操作符。摘取内容如下:
15.27 Expression
An Expression is any assignment expression:
Expression:
AssignmentExpression
Unlike C and C++, the Java programming language has no comma operator.
什么是逗号操作符?逗号把几个表达式串在一起。逗号操作符的左侧总是作为void(无值),这意味着其右边表达式的值变为以逗号分开的整个表达式的值。
x=(y=3,y+1);
这行将3赋给y,然后将4赋给x,因为逗号操作符的优先级比赋值操作符优先级低,所以必须使用括号。实际上,逗号表示操作顺序。当它在赋值语句右边使用时,所赋的值是逗号分隔开的表中最后那个表达式的值。例如,
y=10;x=(y=y-5,25/y);
执行后,x的值是5,因为y的起始值是10,减去5之后结果再除以25,得到最终结果。
那么下面的语句,用到的不是逗号操作符吗!?
for(int i=0,j=15;i<10;i++,j++){
}
个人觉得java语言里有逗号操作符,但只能在for循环里的初始化和步进控制部分。不象c/c++,可以这样用:
x=(y=3,y+1);
另外不要把逗号操作符和逗号分隔符搞混了,int i,j,k;这里是分隔符不是操作符。