メディアプラネット 中島省吾

演算子

 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項演算
  = 代入演算
*= /= %= += -= <<= >>= >>>=
&= ~= |=
演算付き代入演算