すべてのプロダクト
Search
ドキュメントセンター

OpenSearch:Cava 演算子

最終更新日:Apr 02, 2026

Cava は、算術、比較、ビット単位、論理、代入の各操作に対応する 5 種類の演算子をサポートしています。このページでは、各演算子の動作、サポートされるデータ型、および優先順位ルールについて説明します。

Cava は条件演算子(三項演算子)(?:)をサポートしていませんif 文をご使用ください。

算術演算子

すべての算術演算子は数値型で動作します。例として使用する変数:int left = 20, right = 10

演算子名前説明結果
+加算両方のオペランドを加算しますleft + right30
-減算左オペランドから右オペランドを減算しますleft - right10
*乗算両方のオペランドを乗算しますleft * right200
/部門左オペランドを右オペランドで除算しますleft / right2
%剰余除算の余りを返しますleft % right0
++インクリメントオペランドに 1 を加算しますleft++left21
--デクリメントオペランドから 1 を減算しますleft--left19
注:/ の右オペランドは 0 にできません。0 にした場合、ゼロ除算エラーがトリガーされます。

後置インクリメントと前置インクリメント:++(および --)の位置によって、代入に対するインクリメントのタイミングが変わります。int b = a++ は、まず ab に代入してから a をインクリメントします。int b = ++a は、まず a をインクリメントしてから ab に代入します。

関係演算子

関係演算子は 2 つのオペランドを比較し、boolean 型の結果を返します。if 条件文で使用します。例として使用する変数:int left = 20, right = 10

オペレーター名前説明結果
>より大きいtrue(left > right の場合)left > righttrue
<より小さいtrue(left < right の場合)left < rightfalse
>=以上true left が right 以上の場合left >= righttrue
<=以下true、left <= right の場合left <= rightfalse
==等しいtrue 両方のオペランドが等しい場合left == rightfalse
!=等しくないtrue オペランドが異なる場合left != righttrue

ビット単位演算子

ビット単位演算子はバイナリレベルで動作し、INT、LONG、SHORT、CHAR、BYTE 型でサポートされています。例として使用する変数:int left = 1(バイナリ:01)、right = 2(バイナリ:10)。

演算子名前説明結果
&ビット AND両方のオペランドが 1 であるビット位置ごとに 1left & right (01 & 10)0 (00)
|ビット ORいずれかのオペランドが 1 であるビット位置ごとに 1left | right (01 | 10)3 (11)
^ビット XORオペランドが異なるビット位置ごとに 1 を返しますleft ^ right (01 ^ 10)3 (11)
~ビット NOTオペランドの全ビットを反転します~left (~01)-2
<<左シフト指定されたビット数だけビットを左にシフトしますleft << 2 (01 << 2)4 (0100)
>>右シフト指定されたビット数だけビットを右にシフトしますright >> 1 (10 >> 1)1 (01)

論理演算子

論理演算子は boolean 式を組み合わせます。例として使用する変数:boolean left = true, right = false

演算子名称説明結果
&&論理積 (AND)true が両方のオペランドで評価された場合に trueleft && rightfalse
||論理和 (OR)true が少なくとも一方のオペランドで評価された場合に trueleft || righttrue
!論理否定 (NOT)ブール値を反転します!leftfalse

代入演算子

代入演算子は変数に値を代入します。複合代入演算子は、操作と代入を組み合わせたものです。例として使用する変数:int left = 1, right = 2

演算子名前意味left
=代入left = rightleft = right2
+=加算代入left = left + rightleft += right3
-=減算代入left = left - rightleft -= right-1
*=乗算代入left = left * rightleft *= right2
/=部門割り当てleft = left / rightleft /= right0
%=剰余代入left = left % rightleft %= right1
&=ビット AND 代入left = left & rightleft &= right0
|=ビット OR 代入left = left | rightleft |= right3
^=ビット XOR 代入left = left ^ rightleft ^= right3
<<=左シフト代入left = left << rightleft <<= right4
>>=右シフト代入left = left >> rightleft >>= right0

演算子の優先順位

式に複数の演算子が含まれる場合、Cava は以下の順序(優先順位が高い順)で評価を行います。

優先順位名前演算子結合規則
1(最高)グループ化、メンバーアクセス() [] .左から右
2単項、インクリメント、デクリメント! +(単項) -(単項) ~ ++ --右から左
3乗法的* / %左から右
4加算的+ -左から右
5シフト<< >>左から右
6関係< <= > >=左から右
7等価性== !=左から右
8ビット AND&左から右
9ビット XOR^左から右
10ビット OR|左から右
11論理 AND&&左から右
12論理 OR||左から右
13(最低)代入= += -= *= /= %= &= |= ^= ~= <<= >>=右から左

複雑な式では、優先順位ルールが直感的でない場合があります。評価順序を明示するために、括弧 () を使用してください。

int a = 1;
int b = 2;
int c = a * (b + 2); // b + 2 が最初に評価され、その後 a との乗算が行われます