對于Java中||與&&優先級問題:
最初定義為優先級相同,但是在實際操作程序中,出現的現象使人覺得是優先級不同。
我的解釋是,
&&對于運算元的粘合度更高,但是二者的優先級仍然相同。
例如:
1. public class BoolTest{
2. public static void main(String[] args) {
3. int a = 5, b = -5, c = 20;
4. if ((c --< 30) || (b-- < -5) && (a++ < 5))
5. System.out.println("a=" + a + ";b=" + b + ";c=" + c);
6. }
7. }
如果認為二者優先級相同,結果應該是
a=5;b=-6;c=19
但是最終結果為
a=5;b=-5;c=10
也就是說由于&&的粘合度更高,使得if后邊先判斷c,
c--<30為true
就不會繼續執行后邊陳述句。
看官可以驗證將例子中||后邊換成別的運算式,會發現,后邊的永遠不會執行。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/241524.html
標籤:Java相關
上一篇:Excel識別問題
