7. Kotlin 演算子(Operators)
概要
演算子 (Operators) は、オペランド(Operand, 例えば 値または変数) に対して演算を実行する特殊文字です。
Kotlin では 以下の演算子があります。
- 算術演算子 (Arithmetic Operators)
- 比較演算子 (Relational Operators)
- 代入演算子 (Assignment Operators)
- 単項演算子 (Unary Operators)
- 論理演算子 (Logical Operators)
- ビット演算子 (Bitwise Operations)
算術演算子
算術演算子は、数値型の値に対して算術演算を実行するために使用されます。
演算子 | 名前 | 概要 | 例 |
---|---|---|---|
+ | 加算 | 2 つの値を加算します。 | val sum = 5 + 3 // sum は 8 |
– | 減算 | 2 つの値を減算します。 | val difference = 10- 4 // difference は 6 |
* | 乗算 | 2 つの値を乗算します。 | val product = 6 * 7 // product は 42 |
/ | 除算 | 2 つの値を除算します。 | val quotient = 15 / 3 // quotient は 5 |
% | 剰余 | 除算の余りを返します。 | val remainder = 10 % 3 // remainder は 1 |
比較演算子
比較演算子は、2 つの値を比較し、ブール値(true または false)を返します。
演算子 | 名前 | 概要 | 例 |
---|---|---|---|
== | 等しい | 2 つの値が等しいかどうかを比較します。 | val isEqual = 5 == 5 // isEqual は true |
!= | 等しくない | 2 つの値が等しくないかどうかを比較します。 | val isNotEqual = 5 != 3 // isNotEqual は true |
< | より小さい | 左側の値が右側の値より小さいかどうかを比較します。 | val isLess = 3 < 5 // isLess は true |
> | より大きい | 左側の値が右側の値より大きいかどうかを比較します。 | val isGreater = 7 > 4 // isGreater は true |
<= | 以下 | 左側の値が右側の値以下かどうかを比較します。 | val isLessOrEqual = 5 <= 5 // isLessOrEqual は true |
>= | 以上 | 左側の値が右側の値以上かどうかを比較します。 | val isGreaterOrEqual = 8 >= 6 // isGreaterOrEqual は true |
代入演算子
代入演算子は、変数に値を代入するために使用されます。
演算子 | 名前 | 概要 | 例 |
---|---|---|---|
= | 代入 | 右側の値を左側の変数に代入します。 | var x = 5 // x に 5 を代入 |
+= | 加算代入 | 左側の変数の値に右側の値を加算し、結果を左側の変数に代入します。 | x += 3 // x は 8 になる |
-= | 減算代入 | 左側の変数の値から右側の値を減算し、結果を左側の変数に代入します。 | x -= 2 // x は 6 になる |
*= | 乗算代入 | 左側の変数の値に右側の値を乗算し、結果を左側の変数に代入します。 | x *= 4 // x は 24 になる |
/= | 除算代入 | 左側の変数の値を右側の値で除算し、結果を左側の変数に代入します。 | x /= 3 // x は 8 になる |
%= | 剰余代入 | 左側の変数の値を右側の値で除算した余りを左側の変数に代入します。 | x %= 5 // x は 3 になる |
単項演算子
単項演算子は、1 つのオペランドに対して操作を実行します。
演算子 | 名前 | 概要 | 例 |
---|---|---|---|
+ | 単項プラス | 値の符号を変更しません。 | val positive = +5 // positive は 5 |
– | 単項マイナス | 値の符号を反転します。 | val negative = -5 // negative は -5 |
++ | インクリメント | 値を 1 増やします。 | var x = 5; x++ // x は 6 になる |
— | デクリメント | 値を 1 減らします。 | var y = 5; y– // y は 4 になる |
! | 否定 | ブール値を反転します。 | val isFalse = !true // isFalse は false |
論理演算子
論理演算子は、ブール式の値に基づいて操作を実行します。
演算子 | 名前 | 概要 | 例 |
---|---|---|---|
&& | 論理積 (AND) | 両方のオペランドが true の場合にのみ true を返します。 | val result = true && false // result は false |
|| | 論理和 (OR) | いずれかのオペランドが true の場合に true を返します。 | val result = true || false // result は true |
! | 論理否定 (NOT) | オペランドの真偽値を反転させます。 | val result = !true // result は false |
ビット演算子
ビット演算子は、整数のビット単位の操作を実行します。
演算子 | 名前 | 概要 | 例 |
---|---|---|---|
and | ビット積 (AND) | 各ビット位置で、両方のオペランドのビットが 1 の場合に 1 を返します。 | val result = 5 and 3 // result は 1 |
or | ビット和 (OR) | 各ビット位置で、いずれかのオペランドのビットが 1 の場合に 1 を返します。 | val result = 5 or 3 // result は 7 |
xor | ビット排他的論理和 (XOR) | 各ビット位置で、一方のオペランドのビットだけが 1 の場合に 1 を返します。 | val result = 5 xor 3 // result は 6 |
inv | ビット反転 (NOT) | 各ビットを反転します。 | val result = inv(5) // result は -6 |
shl | 左シフト | ビットを左にシフトします。 | val result = 5 shl 2 // result は 20 |
shr | 右シフト | ビットを右にシフトします。 | val result = 5 shr 1 // result は 2 |
ushr | 符号なし右シフト | ビットを右にシフトし、符号ビットを 0 で埋めます。 | val result = -5 ushr 1 // result は 2147483645 |