java在一个变量的右边可以做多少算术运算
for(int i = 1; i <= 5; i++) {
for(int j = 1; j <= i; j++) {
int a = i + j*2;
System.out.print(a);
}
}
当运行上面的代码时,我得到的输出是
3
46
579
681012
79111315
我无法理解为什么它会按照逻辑将第一行打印为3,I+j*2=4
你可以在下面搜索框中键入要查询的问题!
for(int i = 1; i <= 5; i++) {
for(int j = 1; j <= i; j++) {
int a = i + j*2;
System.out.print(a);
}
}
当运行上面的代码时,我得到的输出是
3
46
579
681012
79111315
我无法理解为什么它会按照逻辑将第一行打印为3,I+j*2=4
# 1 楼答案
优先权。乘法优先于加法,所以在第一次调用中,
i+j*2
是1+1*2
是1+(1*2)
是1+2
是3
基本操作的优先级可以通过PEMDAS或BODMAS记住(“MD”和“AS”具有相同的优先级,因此我在这里的一行中显示了它们):
1幂(2^5)、平方根等
Java站点有a page on operator precedence,它有以下表格:
1他们指的是conditional operator,这是一个三元运算符(一个接受三个操作数的运算符),实际上,Java只有一个
# 2 楼答案
乘法(
*
)在算术上优先于加法(+
)。在第一次迭代中,i
和j
都是1
。首先要计算的是j*2
,即1*2=2
。然后我们将i
和之前计算的乘积相加,得到1+2=3