1Java關係運算
1.1關係運算的種類
等於運算 |
表達式1 == 表達式2 |
不等於運算 |
表達式1 != 表達式2 |
大於運算 |
表達式1 > 表達式2 |
小於運算 |
表達式1 < 表達式2 |
大於等於運算 |
表達式1 >= 表達式2 |
小於等於運算 |
表達式1 <= 表達式2 |
運算結果是true/false
1.2邏輯運算的種類
長路與運算 |
關係運算1 & 關係運算2 |
短路與運算 |
關係運算1 && 關係運算2 |
長路或運算 |
關係運算1 | 關係運算2 |
短路或運算 |
關係運算1 || 關係運算2 |
非運算 |
!(關係運算1) |
運算結果是true/false
1.2.1邏輯與運算
兩個關係運算的結果都是true時,與運算的結果是true,否則都是false。
a. 長路與運算:&
把&符號兩邊的關係運算結果都計算出來後進行判斷。
例:15<12 & 4*8>30
① 計算15<12,結果是false
② 計算4*8>30,結果是true
③ false & true,結果是false
b. 短路與運算:&&
先把&&符號左邊的關係運算結果計算出來,如果結果爲false,不再對右邊的關係運算進行計算。這樣能提高計算效率。
例:15<12 & 4*8>30
① 計算15<12,結果是false
② false && 4*8>30,結果是false
1.2.2邏輯或運算
兩個關係運算的結果有一個是true時,或運算的結果是true,否則是false。
a. 長路或運算:|
會將兩邊的關係運算結果都計算出來。
例:4*5>15 | 8<9
① 計算4*5>15,結果是true
② 計算8<9,結果是false
③ 計算true | false,結果是true
b. 短路或運算:||
當運算符號左邊的關係運算結果是true時,不再對右邊的關係運算進行計算。
例:4*5>15 | 8<9
① 計算4*5>15,結果是true
② 計算true || 8<9,結果是true
1.2.3非運算
例:!(8*3>12)
① 計算8*3>12,結果是true
② 計算!(true),結果是false
1.3運算優先級
1. 關係運算的優先級高於所有邏輯運算。
2. 幾種邏輯運算的優先級:非運算>與運算>或運算
3. 例:6>8 || 2*6<15 && !false
① 依次計算所有的關係運算:false || true && !false
② 按優先級先進行非運算:false || true && true
③ 與運算的優先級高於或運算:false || true
④ 結果:true