全部產品
Search
文件中心

OpenSearch:Cava 運算子

更新時間:Jul 13, 2024

簡介

在編程中我們需要對一些變數進行運算,比如算術運算、邏輯運算等。cava提供了一系列運算子來支援上述功能,根據運算情境的不同主要分成下面幾類:

  • 算術運算子

  • 關係運算子

  • 位元運算符

  • 邏輯運算子

  • 賦值運算子

算術運算子

算術運算子主要用於數學計算,它們的含義和數學中的含義相同,下表列出了cava支援的所有運算子。

算術運算子

描述

樣本(int left = 20,right = 10;)

+

加法:操作符兩邊的運算元相加

int a = left + right; a結果為30

-

減法:左邊的運算元減去右邊的運算元

int a = left - right; a結果為10

*

乘法:操作符兩邊的運算元相乘

int a = left * right; a結果為200

/

除法:左邊的運算元除以右邊的運算元

int a = left / right; a結果為2

%

模數:左邊的運算元除以右邊的運算元的餘數

int a = left % right; a結果為0

++

自增:運算元自身加一

int a = left++; a結果為20, left為21

自減:運算元自身減一

int a = left—; a結果為20,left為19

說明:除法運算子的右邊變數不能為零,否則會觸發除零異常。int b = a++; 表示先將a賦值給b,然後a再自增。int b = ++a;表示a先自增,然後再講自增之後的a賦值給b。

關係運算子

cava中關係運算的結果為布爾(boolean)類型,主要用在if語句中。下表列出了cava支援的關係運算子:

關係運算子

描述

樣本(int left = 20,right = 10;)

>

大於:檢查左邊的運算元是否大於右邊的運算元,如果是結果為true,否則為false

boolean a = left > right; a的結果為true

<

小於:檢查左邊的運算元是否小於右邊的運算元,如果是結果為true,否則為false

boolean a = left < right; a的結果為false

>=

大於等於:檢查左邊的運算元是否大於或者等於右邊的運算元,如果是結果為true,否則為false

boolean a = left >= right; a的結果為true

<=

小於等於:檢查左邊的運算元是否小於或者等於右邊的運算元,如果是結果為true,否則為false

boolean a = left <= right; a的結果為false

==

等於:檢查左邊的運算元是否等於右邊的運算元,如果是結果為true,否則為false

boolean a = left == right; a的結果為false

!=

不等於:檢查左邊的運算元是否不等於右邊的運算元,如果是結果為true,否則為false

boolean a = left != right; a的結果為true

位元運算符

數值在電腦中是通過二進位進行表示的,cava提供了一系列位元運算符,支援對int、long、short、char、byte等類型變數在按位進行運算。下表列出了cava支援的位元運算符:

位元運算符

描述

樣本(int left = 1,right = 2;)

&

按位與:兩個運算元的某一位都為1時這位才為1

int a = left & right; a的結果為0

|

按位或:兩個運算元的某一位只要有一個不為1時這位就為1

int a = left | right; a的結果為3

^

按位異或:兩個運算元的某一位不同時這位才為1

int a = left ^ right; a的結果為3

~

按位取反:對運算元的每一位取反

int a = ~left; a的結果為-2

<<

左移:運算元左移指定的位元

int a = left << 2; a的結果為4

>>

右移:操作室右移指定的位元

int a = right >> 1; a的結果為1

邏輯運算子

cava中的邏輯運算子用於串連布爾型的變數組成更複雜的語句,下表列出了cava中支援的邏輯運算子:

邏輯運算子

描述

執行個體(boolean left = true, right = false;)

&&

邏輯與:兩邊的運算元都為true時結果才為true

boolean a = left && right; a的結果為false

||

邏輯或:兩邊的運算元任何一個為true時,結果就為true

boolean a = left || right; a的結果為true

!

邏輯非:取反運算元的邏輯狀態,true結果為false,false結果為true

boolean a = !left; a的結果為false

賦值運算子

賦值運算子用於將一個變數賦值給另一個變數,下表列出了cava中支援的賦值運算子:

賦值運算子

描述

樣本(int left = 1, right = 2;)

=

簡單賦值:將右邊運算元的值賦給左邊運算元

left = right; left結果為2

+=

加和賦值:將左邊運算元和右運算元相加後賦給左邊運算元

left += right; left結果為3

-=

減和賦值:將左邊運算元和右運算元相減後賦給左邊運算元

left -= right; left結果為-1

*=

乘和賦值:將左邊運算元和右運算元相乘後賦給左邊運算元

left *= right; left結果為2

/=

除和賦值:將左邊運算元和右運算元相除後賦給左邊運算元

left /= right; left結果為0

%=

模數和賦值:將左邊運算元和右運算元模數後賦給左邊運算元

left %= right; left結果為1

&=

按位與賦值:將左邊運算元和右運算元按位與後賦給左邊運算元

left &= right; left結果為0

|=

按位或賦值:將左邊運算元和右運算元按位或後賦給左邊運算元

left |= right; left結果為3

^=

按位異或賦值:將左邊運算元和右運算元按位異或後賦給左邊運算元

left ^= right; left結果為3

<<=

左移賦值:將左邊運算元左移右運算元位元後賦給左邊運算元

left <<= right; left結果為4

>>=

右移賦值:將左邊運算元右移右運算元位元後賦給左邊運算元

left >>= right; left結果為0

條件運算子 (? :)

cava目前暫不支援條件運算子,有相關尋求的使用者可以使用if語句進行替代。

運算子的優先順序

在編碼過程中,我們經常會遇到多個運算子混合使用的情況,下表列出了cava支援的運算子的優先順序:

優先順序

運算子

結合性

1

() [] .

從左向右

2

! +(正) -(負) ~ ++ —

從右向左

3

* / %

從左向右

4

+(加) -(減)

從左向右

5

<< >>

從左向右

6

< <= > >=

從左向右

7

== !=

從左向右

8

&

從左向右

9

^

從左向右

10

|

從左向右

11

&&

從左向右

12

||

從左向右

13

= += -= *= /= %= &= |= ^= ~= <<= >>=

從右向左

上表中優是按照優先順序從高到低的順序,也就是優先順序為1的最高,優先順序14最低。但是在編碼過程做我們很難提前預判沒一個操作符的優先順序,所以最好的辦法就是我們通過()為每一個運算子強行指定其運算順序,比如:

int a = 1;
int b = 2;
int c = a * (b + 2); //通過()強制b+2優先計算