メディアプラネット 中島省吾
演算子 |
Java言語では,たくさんの演算子が使われます。以下にその種類と使い方の例を紹介します。
算術演算子
算術演算子には以下の種類があります。
+ | 加算 | m + n → mとnを加算する |
- | 減算 | m - n → mからnを引算する |
* | 掛算 | m * n → mにnを掛算する |
/ | 割算 | m / n → mをnで割算する |
% | 剰余算 | m % n → mをnで割算した余り(m,nは整数型のみ有効) |
算術演算子の練習
それでは,変数を使う練習をしてみましょう。以下のようにコードを入力して実行してください。
public class MyVariable
{ |
文字列連結演算子
Java言語では,文字列を連結するのに,+演算子を使うことができます。
文字列連結演算子の練習
次のソースコードでは""ぽんぽこ"と"たぬき"を連結しています。
public class MyString
{ |
インクリメント・デクリメント演算子
Java言語では,変数の値を1増やしたり(インクリメント),1減らしたりする(デクリメント)演算子があります。
++ | インクリメント演算子 | 式の値を1増やす |
-- | デクリメント演算子 | 式の値を1減らす |
以下のコードでは,変数aにインクリメント演算子とデクリメント演算子を使用しています。
public class MyIncDec
{ |
注意する点は,変数の前に演算子を書くのと,後ろに書くのとでは意味が違う点です。後ろに書いた場合は,全体で演算する前の値を表現し,前に書いた場合は,演算した後の値を表します。
比較演算子
比較演算子は,式を評価した結果をtrueかfalseで返します。
== | ||
< | 小なり演算子 | 式(x <
y)を評価して、xがyより小さいときtrueを xがyと等しいか大きいときfalseを返す。 |
> | 大なり演算子 | 式(x >
y)を評価して、xがyより大きいときtrueを xがyと等しいか小さいときfalseを返す。 |
<= | 以下演算子 | 式(x <=
y)を評価して、xがyと等しいか小さいときtrueを xがyより大きいときfalseを返す。 |
<= | 以上演算子 | 式(x <=
y)を評価して、xがyと等しいか大きいときtrueを xがyより小さいときfalseを返す。 |
比較演算子の練習
次のソースコードでは比較演算子をif文の条件判断に利用しています。
public class HilakuTest
{ |
注意する点は,< や > は,<= や >= と違い,等しい場合は含まれないという点です。
論理演算子
複数の比較演算子を組み合わせる場合に,論理演算子を使うことができます。
&& | AND演算子 | 式(x &&
y)を評価して、xとyのどちらもtrueの場合trueを xとyのどちらかがfalseの場合falseを返す。 |
|| | OR演算子 | 式(x ||
y)を評価して、xとyのどちらかがtrueの場合trueに xとyがfalseの場合falseを返す。 |
! | 論理否定演算 |
ビット演算子
Javaには,ビット操作を行うための演算子も用意されています。
<< | 左シフト演算子 | 指定された数値だけ、左にシフトします |
>> | 右シフト演算子 | 符号を保持したまま、 指定された数値だけ右にシフトします |
>> | 右シフト演算子 | 符号ビットも含めて、 指定された数値だけ右にシフトします |
演算子の優先順位
演算子には優先順があります。ここで登場しない演算子も多数ありますが,必要に応じて覚えるようにしてください。
優先度 | 演算子 | 内容 |
高 | ++ -- | 増分演算子、減算演算子 |
~ | ビット反転(NOT)演算 | |
! | 論理否定(NOT)演算 | |
(type) (キャスト) | キャスト演算 | |
* / % | 乗算、除算、剰余算 | |
+ - (数値演算) | 加算、減算 | |
+ (文字列連結演算) | 文字列連結演算 | |
<< | ビット左シフト演算 | |
>> | ビット右シフト演算(算術) | |
>>> | ビット右シフト演算(論理) | |
< > <= >= | 大小比較演算 | |
instanceof | 参照型の比較演算 | |
== != | 恒等演算、不等演算 (オペランドが基本データ型) | |
== != | リファレンスの等、不等 (オペランドがオブジェクト) | |
&(ビット単位のAND) | ビットAND演算 | |
&& (論理AND) | 論理(boolean)型AND演算 | |
~ (ビット単位のXOR) | ビットXOR演算 | |
~ (論理XOR) | 論理(boolean)型XOR演算 | |
| (ビット単位のOR) | ビットOR演算 | |
| (論理OR) | 論理(boolean)型OR演算 | |
&& | 論理AND演算 | |
|| | 論理OR演算 | |
?: | 3項演算 | |
= | 代入演算 | |
低 | *= /= %= += -= <<= >>=
>>>= &= ~= |= |
演算付き代入演算 |