頁:
[1]
JAVA問題求解2
請問以下的while迴圈
(num--)有括號,照理來說應該是先做運算,在做>1的比較
可是跑出程式的結果sum為15,所以是先做比較,在做運算num--
運算子的優先順序應該是()優先於>才對,麻煩各位大大協助我的觀念釐清,謝謝
public class NewMain {
public static void main(String[] args) {
int num = 5;
int sum = 0;
do {
sum += num;
} while ((num--) > 1);
System.out.println("The sum is " + sum + ", ");
}
}
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div> 你知道 --n 和 n-- 的差別嗎
n-- 的 -- 運算子優先度本來就比 > 還高
有沒有加括號是沒有影響的 本帖最後由 foneasion 於 2016-6-17 08:10 PM 編輯
do while是後測式的迴圈
迴圈會先跑一輪,然後才進行迴圈的結束條件測試...
所以就算是寫了
int num = 5;
do {
System.out.println("Run!");
} while (num==1);看起來5就不可能等於1,但是他還是會先執行一次。
所以還是會印出一次:Run!
頭像測試01 發表於 2016-6-17 05:20 PM static/image/common/back.gif
你知道 --n 和 n-- 的差別嗎
n-- 的 -- 運算子優先度本來就比 > 還高
有沒有加括號是沒有影響的 ...
了解,謝謝您
--n跟n--意義我知道,不懂得在於()與>之間優先性
foneasion 發表於 2016-6-17 08:09 PM static/image/common/back.gif
do while是後測式的迴圈
迴圈會先跑一輪,然後才進行迴圈的結束條件測試...
謝謝您......
了解......
{:45:}<br><br><br><br><br><div></div> 分3塊來看:
1. while跟do while的差異:
while是先判斷,後執行。
do while是先執行一次,才判斷。
2. ++, --這兩種increment operator的作用方法:
放在變數前,例:++n ->先遞增或遞減,再取值。
放在變數後,例:n-- ->先取值,再遞增或遞減。
3. 優先權:
請參照官網說明:
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html
頁:
[1]