1. Top
  2. Java SE
  3. Javaの演算子

Javaの演算子方

算術演算

算術演算子には以下の演算子が用意されています。
演算子
記入例
説明
+
x + y
xとyを加算。
-
x - y
xからyを減算。
*
x * y
xをyで乗算。
/
x / y
xをyで除算。
%
x % y
xをyで除算した余りを求める。
++
++x、y++
++xはxを1増加させた後にxを評価します。y++はyを評価した後に1増加させます。
--
--x、y--
--xはxを1減少させた後にxを評価します。y--はyを評価した後に1減少させます。



ページの先頭へ

比較演算子

比較演算子には以下の演算子が用意されています。
演算子
記入例
説明
>
x > y
xがyよりも大きい場合にtrueを返す。
>=
x >= y
xがyよりも大きいか等しい場合にtrueを返す。
<
x < y
xがyよりも小さい場合にtrueを返す。
<=
x <= y
xがyよりも小さいか等しい場合にtrueを返す。
==
x == y
xとyが等しい場合にtrueを返す。
!=
x != y
xとyが等しくない場合にtrueを返す。
instanceof
x instanceof y
xがyと同じクラスかyのサブクラスである場合にtrueを返す。



ページの先頭へ

条件演算子

条件演算子には以下の演算子が用意されています。条件演算子のオペランドにはboolean型の値をとります。
演算子
記入例
説明
&&
x && y
xとyの両方がtrueの場合にtrueを返す。
||
x || y
xとyのいずれかがtrueの場合にtrueを返す。
&
x & y
xとyの両方がブール型且つ両方ともtrueの場合にtrueを返す。両方の変数が整数型の場合はビットごとのAND演算を行う。
|
x | y
xとyの両方がブール型且ついずれかがtrueの場合にtrueを返す。両方の変数が整数型の場合はビットごとのOR演算を行う。
^
x ^ y
xとyの両方がブール型且つxとyが異なった値の場合にtrueを返す。両方の変数が整数型の場合はビットごとのXOR演算を行う。
!
!x
xがfalse場合にtrueを返す。


ページの先頭へ

シフト演算子

シフト演算子には以下の演算子が用意されています。シフト演算子は整数型の値に使用されます。
演算子
記入例
説明
<<
x << y
xのビットをyビットだけ、左にシフトさせる。右端には0を埋める。
>>
x >> y
xのビットをyビットだけ、右にシフトさせる。左端にはその時の最上位ビットと同じ符号を埋める。
>>>
x >>> y
xのビットをyビットだけ、右にシフトさせる。左端には0を埋める。


※左に 1ビットシフト ( 2倍 )。 右に 1ビットシフト ( 1/2 )。

int a = 100 ;
System.out.println(a << 1) ;    // 表示 ( 200 )

int b = 100 ;
System.out.println(a >> 2) ;    // 表示( 25 ) 



ページの先頭へ

ビット演算子

Javaでは以下のビット演算子が用意されています。ビット演算子は整数型の値に使用します。
&、|、^をブール型の値に使用した場合は条件演算子として機能します。
演算子
記入例
説明
&
x & y
x、yが整数型の場合、ビットごとのAND演算を行う。
|
x | y
x、yが整数型の場合、ビットごとのOR演算を行う。
^
x ^ y
x、yが整数型の場合、ビットごとのXOR演算を行う。
~
~x
xが整数型の場合、ビットごとのNOT演算(各ビットの反転)を行う。


ページの先頭へ

代入演算子・その他演算子

代入演算子

Javaで用意されている代入演算子は=です。 = はある値を変数などに代入する際に使用します。
// xに10を代入します。
int x = 10;

代入演算子=と算術演算子、ビット演算子、シフト演算子を組み合わせ演算文の簡略を行うことができます。
演算子
演算文の簡略
記入例
同様な書き方
算術演算子 +=
x += y
x = x + y
-=
x -= y
x = x - y
*=
x *= y
x = x * y
/=
x /= y
x = x / y
%=
x %= y
x = x % y
ビット演算子
&=
x &= y
x = x & y
|=
x |= y
x = x | y
^=
x ^= y
x = x ^ y
シフト演算子 <<=
x <<= y
x = x << y
>>=
x >>= y
x = x >> y
>>>=
x >>>= y
x = x >>> y


その他の演算子

Javaではこれまで説明した以外に、以下の演算子が用意されています。
演算子
記入例
説明
? :
x ? y : z
if-else文を簡略化した記述方法です。記入例ではxがtrueのときyを実行し、xがfalseのときはzを実行することを意味します。
[ ]
x[0]
配列関連の記述に使用します。記入例ではx配列のインデックス番号が0の配列要素を表しています。詳細は配列のページを参照してください。
x.y
オブジェクトの限定名を記述する際に使用します。記入例はxオブジェクト内のyインスタンス変数の参照などと見ることができます。
(パラメータリスト)
メソッド名(int x)
メソッドが呼び出し元から受ける引数の一覧を記述する際に使用します。記入例はそのメソッドにおいて、int型の引数xを受け取ることを表します。
(型)
(int)x
値を指定された型に変換する際に使用します。記入例は値xをint型に変換することを表します。
new
new x( )
オブジェクト・配列を生成する際に使用する演算子です。記入例はxクラスのオブジェクトの生成を表します。


ページの先頭へ

演算子の優先順位

Javaでは複数の演算子を組み合わせ一つの式でいくつもの処理を行うことができます。その際、どの順番で演算が行われるかを把握することは重要なことです。演算処理の順番の相違により、演算結果が想定していたものと異なる場合があるからです。以下にJavaで用意されている演算子の優先順位を記載します。演算処理は代入演算子を除く演算子は左から右へ、代入演算子は右から左へ処理が行われていきます(x++、--xなどの単項演算子は除く)。
優先順位
演算子
高い
[ ] . (パラメータのリスト) x++ x--
 
++x --x +x ~ !
new (型)x
* / %
+ -
<< >> >>>
< > <= >= instanceof
== !=
&
^
|
&&
||
 
? :
低い
= += -= *= /= %= &= ^= |= <<= >>= >>>=



ページの先頭へ