文章目錄
- 前言
- 一、操作符介紹與優先級表
- 二、一元運算符與二元運算符的區別?
- 三、Java 中唯一的三元操作符
- 四、邏輯操作符中的德模佛定理
- 總結
前言
在 Java 中我們常見的操作符分為三種,分別是邏輯操作符、關系操作符、算術操作符,其優先級和結合規則確定了操作符計算的順序,那么你會具體運用它們嗎?又有哪些注意事項呢?它們各自的優先級又該如何區分呢?德模佛定理又該如何應用呢?本文來帶你詳細了解。一、操作符介紹與優先級表
我們常見的操作符分為三種,其優先級為:邏輯操作符 < 關系操作符 < 算術操作符
- 邏輯操作符(也稱布爾操作符),是對布爾值進行的運算,它會創建新的布爾值。包括:非(
!
)、與(&&
)、或(||)、異或(^
)。 - 關系操作符(<、<=、==、!=、>、>=)產生一個布爾值。
優先級規則定義了操作符的先后次序,下表按照從上到下按優先級遞減的方式排列。
優先級 | 操作符 |
---|---|
最高級 | var++和var- -(后置操作符) |
↓ | +、-(一元加號和一元減號)、++var、- -var(前置操作符) |
↓ | (type)類型轉換 |
↓ | !(非) |
↓ | *、/、%(乘法、除法和求余運算) |
↓ | +、-(二元加法和減法) |
↓ | <、<=、>、>=(比較操作符) |
↓ | ==、!=(相等操作符) |
↓ | ^(亦或) |
↓ | &&(條件與) |
↓ | (條件或) |
最低級 | =、+=、-=、*=、/=、%=(賦值操作符) |
注意:所有的二元操作符都是左結合(left-associative),賦值操作符是右結合(right-associative)。
二、一元運算符與二元運算符的區別?
一元運算符有且只有一個運算參數,二元運算符有且只有兩個運算參數。
例如:
- 一元運算符,如負號 - 1 : 它只能運算一個數據。
- 二元運算符,如加號 1 + 2 :參加運算的只能是兩個數據,多或者少都出錯,它是二元運算符。
三、Java 中唯一的三元操作符
符號?
和:
在條件表達式中同時出現。它們構成一種條件操作符,因為操作數有三個,所以稱為三元操作符(ternary operator),它是 Java 中唯一的三元操作符。
在 Java 中的條件表達式基本形式如下:
boolean-expression ? expression1 : expression2;(布爾表達式? 表達式1: 表達式2)
如果布爾表達式的值為 true,則條件表達式的結果為表達式 expression1,否則結果為 expression2。我們通常使用三元操作符來改寫 if else 條件語句。
如我們現在實現一個判斷票價的條件語句:年齡 age 小于 16 歲半價門票 ticketPrice 為 10 元,否則為全票 20 元。
首先用常規的 if else 條件語句實現,代碼如下:
if (age >= 16) {ticketPrice = 20;} else {ticketPrice = 10;}
接著我們使用三元操作符來改寫,代碼如下:
ticketPrice = (age >= 16) ? 20 : 10;
如示例所示,三元操作符的條件表達式可以編寫更精簡的代碼。
四、邏輯操作符中的德模佛定理
德模佛定理是以印度出生的英國數學家和邏輯學家奧古斯都?德?模佛來命名的(1806——1871),這個定理可以用來簡化表達式。
定義描述如下:
!(condition1 && condition2)和!condition1 || !condition2是等價的,
!(condition1 || condition2)和!condition1 && !condition2是等價的。
即:
!(number % 2 == 0 && number % 3 == 0)等價于!number % 2 == 0 || !number % 3 == 0
!(number % 2 == 0 || number % 3 == 0)等價于!number % 2 == 0 && !number % 3 == 0
總結
本文給大家介紹了 Java 中操作符優先級、一二三元操作符以及邏輯操作符中德模佛定理。這些都是 Java 的基礎,基礎扎實,后期才可以穩步提升。其中的三元操作符有時候運用起來遠比使用條件語句快得多,時間復雜度會大大降低。我是白鹿,一個不懈奮斗的程序猿。望本文能對你有所裨益,歡迎大家的一鍵三連!若有其他問題、建議或者補充可以留言在文章下方,感謝大家的支持!