java请评估以下语句(与增量后和增量前相关)
当我执行代码时,它给我13作为答案。请解释计算机是如何得出答案的。我想知道增量前后的优先级
class demo
{
public static void main(String [] arg)
{
int i=2;
System.out.println(i++ + i + ++i + i++);
}
}
你可以在下面搜索框中键入要查询的问题!
当我执行代码时,它给我13作为答案。请解释计算机是如何得出答案的。我想知道增量前后的优先级
class demo
{
public static void main(String [] arg)
{
int i=2;
System.out.println(i++ + i + ++i + i++);
}
}
# 1 楼答案
# 2 楼答案
我认为运算符优先级在这里不是一个真正的问题;似乎有明确的行动顺序。从左向右移动:
++i
意味着在读取其值之前,我会先递增i++
表示应该先读取i,然后再递增注意:增量运算符比加法运算符的进阶更高。(根据评论)这里有一个很好的reference
# 3 楼答案
i++
表示i在“使用”之后递增,而++i
表示i在“使用”之前递增 因此你的表达是:2(按原样取i,然后递增)
+3(取递增的i,一点也不更改)
+4(服用前增加i)
+4(按原样取i,然后递增)
=13(我现在5岁了)