トップ
トップ >  プログラミング言語 >  Java >  演算子
演算子
概要
Javaで使用できる演算子です。

解説
分類演算子名称解説
インクリメント/デクリメント++インクリメントインクリメントは値を1増加させることです。x++;
--デクリメントデクリメントは値を1減少させることです。x--;
算術演算子+加算演算子加算を行います。a + 2;
-減算演算子減算を行います。a - 2
*乗算演算子乗算を行います。a * 2
/除算演算子除算を行います。a / 2
%剰余演算子剰余を求めます。a % 2
ビット演算子&論理積演算子論理積を求めます。a & 2
|論理和演算子論理和を求めます。a | b
^排他的論理和演算子排他的論理和を求めます。a % 2
~否定演算子否定を求めます。a % 2
シフト演算子<<左シフトビット列を左にシフトします。a << 3
>>符号付右シフトビット列を右にシフトします。a >> 3
>>>0埋め右シフトビット列を右にシフトします。a >>> 3
比較演算子==イコール値が同一か判定する演算子です。a == b
!=ノットイコール値が異なるか判定する演算子です。a != b
<小なり左辺値が右辺値より小さいかどうか比較します。a < b
>大なり左辺値が右辺値より大きいかどうか比較します。a > b
<=小なりイコール左辺値が右辺値以下かどうか比較します。a <= b
>=大なりイコール左辺値が右辺値以上かどうか比較します。a >= b
instanceofインスタンスオブ演算子左辺値が右辺値のインスタンスかどうか判定します。a instanceof C
論理演算子&&AND演算子左辺値と右辺値が真かどうか判定します。a && b
||OR演算子左辺値と右辺値のいずれかが真かどうか判定します。a || b
!NOT演算子真偽を反転します。!a
代入演算子=代入演算子値の代入を行う演算子です。a = 2;
+=加算代入演算子加算と代入を同時に行う演算子です。a += 3;
-=減算代入演算子減算と代入を同時に行う演算子です。a -= 3;
*=乗算代入演算子乗算と代入を同時に行う演算子です。a *= 3;
/=除算代入演算子除算と代入を同時に行う演算子です。a /= 3;
%=剰余代入演算子剰余と代入を同時に行う演算子です。a %= 3;
&=論理積代入演算子論理積と代入を同時に行う演算子です。a &= 3;
|=論理和代入演算子論理和と代入を同時に行う演算子です。a |= 3;
^=排他的論理和代入演算子排他的論理和と代入を同時に行う演算子です。a ^= 3;
<<=左シフト代入演算子左シフトと代入を同時に行う演算子です。a <<= 3;
>>=符号付右シフト代入演算子符号付右シフトと代入を同時に行う演算子です。a >>= 3;
>>>=0埋め右シフト代入演算子0埋め右シフトと代入を同時に行う演算子です。a >>>= 3;
条件演算子?:三項演算子条件を記述できる演算子です。a ? b : c
添え字演算子[]添え字演算子配列にアクセスする演算子です。配列のページを参照a[0]
ドット演算子.ドット演算子クラスやオブジェクトにアクセスする演算子です。a.m();
new演算子newnew演算子インスタンスを生成する演算子です。new C();
順次演算子,順次演算子前から順に処理を行います。a = b,c = d;
キャスト演算子()キャスト演算子キャストに用いる演算子です。(int)a;
優先順位
演算子は以下の順で処理されます。括弧で変更可能です。
優先順位演算子
高い












低い
[] . () ++ -- + ~ !
new キャスト
* / %
+ -
<< >> >>>
< > <= >= instanceof
== !=
&
^
|
&&
||
?:
= += -= *= /= %= &= ^= |= <<= >>= >>>=
,

インクリメント/デクリメント
インクリメントは値を1増加させることです。
デクリメントは値を1減少させることです。
変数の後につけると式の評価を先に行い、変数の前に付けると式の評価を後に行います。
x++ x-- 式の評価を先に行う
++x --x 式の評価を後に行う
ソースコード実行結果説明
v1 = 3;
System.out.println("v1++ = " + v1++);
System.out.println("v1 = " + v1);
v1++ = 3
v1 = 4
インクリメントは式の評価後です。
v1 = 3;
System.out.println("v1-- = " + v1--);
System.out.println("v1 = " + v1);
v1-- = 3
v1 = 2
デクリメントは式の評価後です。
v1 = 3;
System.out.println("++v1 = " + ++v1);
System.out.println("v1 = " + v1);
++v1 = 4
v1 = 4
インクリメントは式の評価前です。
v1 = 3;
System.out.println("--v1 = " + --v1);
System.out.println("v1 = " + v1);
--v1 = 2
v1 = 2
デクリメントは式の評価前です。

算術演算子
演算子説明
+左辺値と右辺値を加算します。+に関しては文字列にも使用できます。
-左辺値から右辺値を引いた値が演算結果になります。
*左辺値に右辺値をかけます。
/左辺値を右辺値で割ります。0で除算するとjava.lang.ArithmeticException例外がスローされます。
%左辺値を右辺値で割った余りを求めます。

ソースコード結果説明
try{
  int a = 5 / 0;
}
catch(Exception e){
  e.printStackTrace();
}
0での除算を行っています。 java.lang.ArithmeticException: / by zero
  at basic.OperationTest.test1(OperationTest.java:49)
  at basic.OperationTest.main(OperationTest.java:6)
0で除算するとjava.lang.ArithmeticException例外がスローされます。
12 % 5
演算結果は12を5で割った余りである2になります。 剰余演算子 %

ビット演算子
ビット演算を行う演算子です。
演算子演算子名説明
&論理積論理積(and)を求めます。
|論理和論理和(or)を求めます。
^排他的論理和排他的論理和(xor)を求めます。
~否定否定(not)を求めます。
演算子ソースコード実行結果説明
&System.out.println("12 & 10 = " + (12 & 10));12 & 10 = 8
A1100
B1010
A & B1000
ビット列1100と1010の論理積です。演算結果は1000(10進数では8)になります。
|System.out.println("12 | 10 = " + (12 | 10));12 | 10 = 14
A1100
B1010
A | B1110
ビット列1100と1010の論理和です。演算結果は1110(10進数では14)になります。
^System.out.println("12 ^ 10 = " + (12 ^ 10));12 ^ 10 = 6
A1100
B1010
A ^ B0110
ビット列1100と1010の排他的論理和です。演算結果は0110(10進数では6)になります。
~System.out.println("~12 = " + (~12));~12 = -13
A10
~A01
ビット列10の否定です。演算結果10進数では-13になります。

シフト演算子
ビットでシフトを行う演算子です。整数型のみに使用可能です。
演算子演算子名説明
<<左シフト左辺値を右辺値の分だけ左シフトします。
>>符号付右シフト左辺値を右辺値の分だけ右シフトします。符号は保存されます。
>>>0埋め右シフト左辺値を右辺値の分だけ右シフトします。符号は0になります。

比較演算子
比較を行う演算子です。
演算子演算子名説明
==イコール左辺値と右辺値が等しいか判定します。参照変数の場合、インスタンスが同一であるかを判定します。
!=ノットイコール左辺値と右辺値が異なるか判定します。参照変数の場合、インスタンスが異なるかを判定します。
<小なり左辺値が右辺値より小さいかどうか比較します。
>大なり左辺値が右辺値より大きいかどうか比較します。
<=小なりイコール左辺値が右辺値以下かどうか比較します。
>=大なりイコール左辺値が右辺値以上かどうか比較します。
instanceofインスタンスオブ演算子左辺値が右辺値のインスタンスかどうか判定します。

論理演算子
演算子演算子名説明
&&AND演算子左辺値と右辺値が真かどうか判定します。
||OR演算子左辺値と右辺値のいずれかが真かどうか判定します。
!NOT演算子真偽を反転します。
aba && ba || b!a
truetruetruetruefalse
truefalsefalsetrue
falsetruefalsetruetrue
falsefalsefalsefalse

代入演算子
代入を行う演算子です。
演算子演算子名説明
=代入演算子右辺値を左辺に代入します。
+=加算代入演算子左辺値+右辺値を左辺に代入します。
-=減算代入演算子左辺値−右辺値を左辺に代入します。
*=乗算代入演算子左辺値×右辺値を左辺に代入します。
/=除算代入演算子左辺値÷右辺値を左辺に代入します。
%=剰余代入演算子左辺値を右辺値で割った余りを左辺に代入します。
&=論理積代入演算子左辺値と右辺値の論理積を左辺に代入します。
|=論理和代入演算子左辺値と右辺値の論理和を左辺に代入します。
^=排他的論理和代入演算子左辺値と右辺値の排他的論理和を左辺に代入します。
<<=左シフト代入演算子左辺値を右辺値の分左シフトした値を左辺に代入します。
>>=符号付右シフト代入演算子左辺値を右辺値の分右シフトした値を左辺に代入します。
>>>=0埋め右シフト代入演算子左辺値を右辺値の分0埋め右シフトした値を左辺に代入します。
解説
a += b は
a = a + b と同じです。

三項演算子
書式
条件 ? 条件が成り立つ場合の値 : 条件が成り立たない場合の値
条件式を記述できる演算子です。
a = b ? c : d は以下のソースと同等の意味になります。
if(b){
a = c;
}
else{
a = d;
}

添え字演算子

ドット演算子
メソッドやフィールドにアクセスするための演算子です。
書式
変数名.メソッド名
メソッドにアクセスする書式です。
変数名.フィールド名 フィールドにアクセスする書式です。

new演算子
クラスのインスタンスや配列を生成するための演算子です。 new 配列の詳細は配列参照
クラスの詳細はクラス参照

順次演算子
, 処理をカンマで区切ると、前から順に処理を行います。

キャスト演算子
書式 (型) 型の変換に使用します。
トップ >  プログラミング言語 >  Java >  演算子