概要
プログラミングでは、特定の変数に対して算術演算や論理演算などの操作を実行する必要があります。Cava は、前述のニーズを満たすための一連の演算子を提供しています。演算子は、さまざまな操作シナリオに基づいて、次のタイプに分類されます。
算術演算子
関係演算子
ビット演算子
論理演算子
代入演算子
算術演算子
算術演算子は、数学的計算に使用されます。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 になります。 |
++ | インクリメント: オペランドに 1 を加算します。 | int a = left++: a は 20 になり、left は 21 になります。 |
-- | デクリメント: オペランドから 1 を減算します。 | int a = left--: a は 20 になり、left は 19 になります。 |
注: 除算演算子の右側の変数は 0 にすることはできません。0 にすると、ゼロ除算エラーが発生します。int b = a++ は、a を b に代入してから a に 1 を加算することを意味します。int b = ++a は、a に 1 を加算してから 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) |
& | ビット単位 AND: 同じビット位置にある 2 つのオペランドの両方のビットが 1 の場合、各ビット位置に 1 を返します。 | int a = left & right: a は 0 になります。 |
| | ビット単位 OR: 同じビット位置にある 2 つのオペランドのビットのいずれかまたは両方が 1 の場合、各ビット位置に 1 を返します。 | int a = left | right: a は 3 になります。 |
^ | ビット単位 XOR: 同じビット位置にある 2 つのオペランドのビットが異なる場合、各ビット位置に 1 を返します。 | int a = left ^ right: a は 3 になります。 |
~ | ビット単位 NOT: オペランドのビットを反転します。 | int a = ~left: a は -2 になります。 |
<< | 左シフト: オペランドを左に特定のビット数だけシフトします。 | int a = left << 2: a は 4 になります。 |
>> | 右シフト: オペランドを右に特定のビット数だけシフトします。 | int a = right >> 1: a は 1 になります。 |
論理演算子
Cava の論理演算子は、BOOLEAN 型の変数を接続して、より複雑なロジックを実装するために使用されます。次の表は、Cava でサポートされている論理演算子について説明しています。
論理演算子 | 説明 | 例 (boolean left = true, right = false) |
&& | 論理 AND: 演算子の両側のオペランドが true の場合、true を返します。 | boolean a = left && right: a は false になります。 |
|| | 論理 OR: 演算子の両側のオペランドのいずれかまたは両方が true の場合、true を返します。 | boolean a = left || right: a は true になります。 |
! | 論理 NOT: オペランドが 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 になります。 |
&= | ビット単位 AND 代入: 演算子の両側のオペランドに対してビット単位 AND 演算を実行し、結果を左側のオペランドに代入します。 | left &= right: left は 0 になります。 |
|= | ビット単位 OR 代入: 演算子の両側のオペランドに対してビット単位 OR 演算を実行し、結果を左側のオペランドに代入します。 | left |= right: left は 3 になります。 |
^= | ビット単位 XOR 代入: 演算子の両側のオペランドに対してビット単位 XOR 演算を実行し、結果を左側のオペランドに代入します。 | 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 が優先されるように指定します。