工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Java

Java演算子完全ガイド:算術/関係/ビット/論理/代入/三項/instanceof

演算子の分類

Javaは豊富な演算子セットを提供し、以下のグループに分類できます:

算術演算子

代数と同様に数式で使用。A=10, B=20と仮定:

演算子説明例
+加算A + B = 30
-減算A - B = -10
*乗算A * B = 200
/除算B / A = 2
%剰余B % A = 0
++インクリメントB++ = 21
--デクリメントB-- = 19

関係演算子

A=10, B=20と仮定:

演算子説明例
==等しいか(A == B) は false
!=等しくないか(A != B) は true
>大きいか(A > B) は false
<小さいか(A < B) は true
>=以上か(A >= B) は false
<=以下か(A <= B) は true

ビット演算子

整数型(long, int, short, char, byte)に適用可能。ビット単位で演算。a=60(0011 1100), b=13(0000 1101)の例:

a & b = 0000 1100 (12)
a | b = 0011 1101 (61)
a ^ b = 0011 0001 (49)
~a    = 1100 0011 (-61, 2の補数)
演算子説明例
&ビットAND(両方1なら1)(A & B) = 12
|ビットOR(どちらか1なら1)(A | B) = 61
^ビットXOR(片方のみ1なら1)(A ^ B) = 49
~ビット反転(1の補数)(~A) = -61
<<左シフトA << 2 = 240
>>右シフト(符号拡張)A >> 2 = 15
>>>右シフト(ゼロ埋め)A >>> 2 = 15

論理演算子

boolean型A=true, B=falseと仮定:

演算子説明例
&&論理AND(両方trueならtrue)(A && B) = false
||論理OR(どちらかtrueならtrue)(A || B) = true
!論理NOT(真偽反転)!(A && B) = true

短絡評価:&&は左辺falseなら右辺評価せず、||は左辺trueなら右辺評価せず。

代入演算子

演算子説明例
=単純代入C = A + B
+=加算代入C += A ≡ C = C + A
-=減算代入C -= A ≡ C = C - A
*=乗算代入C *= A ≡ C = C * A
/=除算代入C /= A ≡ C = C / A
%=剰余代入C %= A ≡ C = C % A
<<=左シフト代入C <<= 2 ≡ C = C << 2
>>=右シフト代入C >>= 2 ≡ C = C >> 2
&=ビットAND代入C &= 2 ≡ C = C & 2
^=ビットXOR代入C ^= 2 ≡ C = C ^ 2
|=ビットOR代入C |= 2 ≡ C = C | 2

その他の演算子

条件演算子(三項演算子) ? :

3オペランドでboolean式評価し、値を決定:

variable = (condition) ? valueIfTrue : valueIfFalse;

例

public class Test {
  public static void main(String[] args) {
    int a = 10, b;
    b = (a == 1) ? 20 : 30;  // false → 30
    System.out.println("Value of b is : " + b);
    b = (a == 10) ? 20 : 30; // true → 20
    System.out.println("Value of b is : " + b);
  }
}
Value of b is : 30
Value of b is : 20

instanceof演算子

オブジェクト参照変数専用。左辺オブジェクトが右辺のクラス/インターフェース型であるか(IS-A関係)判定:

(ObjectReference) instanceof (Class/InterfaceType)

例1

String name = "James";
boolean result = name instanceof String;  // true

例2(継承)

class Vehicle {}
class Car extends Vehicle {}
Vehicle v = new Car();
boolean result = v instanceof Car;  // true(CarはVehicleのサブクラス)

演算子優先順位(高→低)

カテゴリ演算子結合性
後置expr++ expr--左→右
単項++expr --expr +expr -expr ~ !右→左
乗算* / %左→右
加算+ -左→右
シフト<< >> >>左→右
関係< > <= >= instanceof左→右
等価== !=左→右
ビットAND&左→右
ビットXOR^左→右
ビットOR|左→右
論理AND&&左→右
論理OR||左→右
条件?:右→左
代入= += -= *= /= %= ^= |= <<= >>= >>>=右→左

次の章へ

次章ではJavaのループ制御(while/for/do-while、break/continue、拡張for文)を説明します。

Java

  1. Java演算子をマスター:種類、構文、実践例
  2. Java入出力をマスター:表示、読み取り、データフォーマット
  3. Javaコメント:種類、使い方、ベストプラクティス
  4. Java拡張forループをマスター:構文、例、ベストプラクティス
  5. Java文字列をマスター:生成、メソッド、ベストプラクティス
  6. Javaインターフェース完全ガイド:概念、実装、ベストプラクティス
  7. Java無名インナークラス完全ガイド:定義、構文、実践例
  8. Javaのtry-with-resourcesをマスターする:自動リソース管理の仕組みと活用法
  9. Javaアノテーション完全ガイド:種類、配置場所、実践例
  10. Javaアサーション完全ガイド:バグ早期発見とコード信頼性の向上
  11. Java Vectorの理解:使い方、特徴、ArrayListとの比較