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. –