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。
我不能理解为什么它打印第一行为3,i + j * 2 = 4按照逻辑。
优先顺序。乘法优先于加法,因此在第一次调用时,i+j*2
是1+1*2
,它是1+(1*2)
,它是1+2
,它是3
。
基本操作的优先级可以用PEMDAS或BODMAS记住(以下简称“MD”和“AS”具有相同的优先级,所以我展示他们一行在这里):
P Parentheses/Brackets B E Exponenentiation/Orders1 O MD Multiplication & Division DM AS Addition and Subtraction AS
幂(2^5),平方根等
的Java站点具有a page on operator precedence,具有这种表:
postfixexpr++ expr--
unary++expr --expr +expr -expr ~ !
multiplicative*/%
additive+ -
shift<< >> >>>
relational< > <= >= instanceof
equality== !=
bitwise AND&
bitwise exclusive OR^
bitwise inclusive OR|
logical AND&&
logical OR||
ternary1? :
assignment= += -= *= /= %= &= ^= |= <<= >>= >>>=
它们的意思是conditional operator,这是一个三元操作者(操作者接受三个操作数)并且当它发生时,只有一个Java有。
它只是乘法或全部算术运算 – ABAJAVa
您可能是对的。当我们在小学时,我们不知道什么数学将会有用,但是在编程时它是+1 –
@ABAJAVa Java遵循优先规则,就像基本数学一样.https://www.mathsisfun.com/operation- order-bodmas.html –
乘法(*
)算术优先于加法(+
)。在第一次迭代中,i
和j
都是1
。首先要计算的是j*2
,即1*2=2
。然后我们添加i
和以前计算的产品并获得1+2=3
。
这是一个调试器的用途。它可以让你逐步浏览你的程序,看看每一行的功能。 –
我不认为你会得到那个输出。没有什么可以打印新的行。 –
为什么你认为'1 + 1 * 2'是4?我相信这是3. –