相关疑难解决方法(0)

Java中评估顺序的规则是什么?

我正在阅读一些Java文本并获得以下代码:

int[] a = {4,4};
int b = 1;
a[b] = b = 0;
Run Code Online (Sandbox Code Playgroud)

在文中,作者没有给出明确的解释,最后一行的效果是: a[1] = 0;

我不太清楚我理解:评估是如何发生的?

java operator-precedence

83
推荐指数
3
解决办法
2万
查看次数

Java表达式中子表达式的评估顺序

我有以下代码片段:

int x=2,y=3;
if ( (y == x++) | (x < ++y) )
// rest of code
Run Code Online (Sandbox Code Playgroud)

我知道在C++中,你被教导不要依赖子表达式的评估顺序,因为它根本不保证是任何顺序.所以这段代码会出错,并且条件中表达式产生的布尔值不能保证为真(例如,y可以在第一次相等性测试中计算之前递增).由于我在Java认证书中阅读了这段代码,我认为Java不是这种情况.我的意思是,我保证Java中的评估顺序总是从左到右吗?所以上面的表达式总是应该是真的.

c++ java expression operator-precedence

3
推荐指数
1
解决办法
343
查看次数

标签 统计

java ×2

operator-precedence ×2

c++ ×1

expression ×1