在java中的序列点概念

时间:2010-09-15 18:11:24

标签: java

我是Java的新手,有C.的背景。我正在阅读Khalid Moughal的书。 在页126上,他举了一个例子

   int i = 10;

   int k = ++i + --i; // ((++i) + (--i)).

这显然违反了C的序列点概念,它表示在相同的序列点中不能多次更改变量的值。 我的问题是,相同的序列点规则是否适用于java? 他可能只是为了解释前缀一元运算符的概念及其副作用而采用这个例子,但这样一个明显违反语言非常基本规则的例子并不像Khalid Moughal那样出名。

所以请确认一下。

希望你们让人们认真对待。

谢谢,

Mawia

2 个答案:

答案 0 :(得分:8)

  

我的问题是,相同的序列点规则是否适用于java?

不,Java中没有序列点。评估顺序(等)在Java中定义良好。

另请阅读this回答。

答案 1 :(得分:0)

不,java中没有序列点的概念,并且完全定义了它的顺序。一般来说,表达式从左到右进行评估。对于正式定义,您可以阅读JLS,第15.7节关于评估顺序。 请参阅this链接。