關係運算子和等於運算子

2021-04-24 14:59:06 字數 1487 閱讀 9306

有些groovy控制語句,如if和while控制語句(參見第8章),通常會使用條件(condition)來進行判斷。條件決定表示式的值為真或者假。關係運算子、等於運算子和邏輯運算通常被用於構造條件表示式(附錄c會詳細討論邏輯運算子)。

關係運算子如表2-5所示。四種運算子均為二元運算子,每種運算子都使用兩個算術表示式作為運算元,並且得出布林型結果true或者false。true和false都是boolean類的例項。這些運算子都是通過呼叫compareto(表2-5)方法來實現的。舉例來說,a

表2-5 關係運算子

表示式

呼叫方法 結果

5 < 3

5.compareto(3) < 0 假

5 <= 3

5.compareto(3) <= 0 假

5 > 3

5.compareto(3) > 0 真

5 >= 3

5.compareto(3) >= 0 真

下面是一些使用關係運算子的表示式例子:

number < 0              // number是否是負數?

age >= 65               // 判斷是否是老年人?

index <= limit-1          // 是否達到上限?

由於關係運算子的優先順序低於算術運算子(參看附錄c),最後乙個例子應該被解釋為index <= (limit-1)。

表2-6提到了等於運算子= =和!=。再次說明一下,它們也都是二元運算子,其運算所得出的結果值也是布林值true或者布林值false。這兩個運算子都是通過equal方法實現的。compareto運算子被<=>所替代,其優先順序和前兩個運算子相同。

表2-6 等於運算子

表示式

呼叫方法 結果

5 = = 3

5.equals(3) 假

5 != 3

! 5.equals(3)

//參見附錄c

真 5 <=> 3

5.compareto(3) +1

一些範例:

def forename = ''ken''

def surname = ''barclay''

forename = = ''ken''                   //結果為true

surname != ''barkley''                 //結果為true

再次宣告一下,這些等於運算最終都是通過呼叫某個方法實現的。例如,條件語句forename = =「ken」實際上是通過forename.equals(「ken」)來實現的。equals方法是string類的方法,其作用是判斷兩個值是否相同。類似的,對於下面兩個賦值語句:

def age = 25

def number = 25

條件語句:

age = = number

其結果是布林值true。在這裡,age. equals(number)是通過integer類的equals方法來求值的。

算術運算子和關係運算子

加法運算 減法運算 乘法運算 除法運算 取餘運算 注意 兩側只能是整數,正負性取決於 左側的數值 整數和整數運算,結果是整數,尤其是在使用除法時需要注意會捨去小數部分 算術表示式是用算術運算子和括號將運算量 也稱運算元 連線起來的 符合c語言語法規則的表示式。其中運算物件包括函式 常量 變數。在算術...

關係運算子和邏輯運算子

關係運算子也叫比較運算子,像數學中10 9 1 x 5等等,表示一種判定關係,給出的這種關係可能是正確的也可能是錯誤的,例如可以有 1 2 這種判定,但這是錯誤的判斷。計算機中也支援這種判定,但結果只有兩種,要麼判斷正確要麼判斷錯誤。正確則稱為 真 錯誤則稱為 假 任意給出這樣乙個判定,要麼為真要麼...

關係運算子,邏輯運算子

關係運算子 判斷左邊表示式的值是否 大於 右邊表示式的值 判斷左邊表示式的值是否 小於 右邊表示式的值 判斷左邊表示式的值是否 大於或者等於 右邊表示式的值 判斷左邊表示式的值是否 小於或者等於 右邊表示式的值 判斷左邊表示式的值是否 等於右邊的表示式的值 判斷左邊表示式的值是否 不等於 右邊表示式...