メディアプラネット 中島省吾
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
{ public static void main(String[] args)
{ int a =
3; int b =
4; System.out.println(a+b); System.out.println(a-b); System.out.println(a*b); System.out.println(a/b); System.out.println(a%b); } } |
文字列連結演算子
Java言語では,文字列を連結するのに,+演算子を使うことができます。
文字列連結演算子の練習
次のソースコードでは""ぽんぽこ"と"たぬき"を連結しています。
public class MyString
{ public static void main(String[] args)
{ System.out.println("ポンポコ"+"たぬき"); } } |
インクリメント・デクリメント演算子
Java言語では,変数の値を1増やしたり(インクリメント),1減らしたりする(デクリメント)演算子があります。
| ++ |
インクリメント演算子 |
式の値を1増やす |
| -- |
デクリメント演算子 |
式の値を1減らす |
以下のコードでは,変数aにインクリメント演算子とデクリメント演算子を使用しています。
public class MyIncDec
{ public static void main(String[] args)
{ int a =
3; System.out.println(a++); a
=
3; System.out.println(++a); a
=
3; System.out.println(a--); a
=
3; System.out.println(--a); } } |
注意する点は,変数の前に演算子を書くのと,後ろに書くのとでは意味が違う点です。後ろに書いた場合は,全体で演算する前の値を表現し,前に書いた場合は,演算した後の値を表します。
比較演算子
比較演算子は,式を評価した結果を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
{ public static
void main(String[] args) { int a = 100; if (a <
0){ System.out.println("aは0より小さいです。"); } else if (a <= 100) { System.out.println("aは100以下です。"); } else if (a == 0) { System.out.println("aは0と等しいです。"); } } }
|
注意する点は,< や > は,<= や >= と違い,等しい場合は含まれないという点です。
論理演算子
複数の比較演算子を組み合わせる場合に,論理演算子を使うことができます。
| && |
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項演算 |
| |
= |
代入演算 |
| 低 |
*= /= %= += -= <<= >>=
>>>= &= ~= |= |
演算付き代入演算 |