Javaの演算子(2)

演算子を紹介しいきます。
Java-Time Javaの基本 オブジェクト指向 Jsp-Servlet-bean JavaXml デザインパターン 本の紹介

演算子(2)

プログラム内での計算させるための記号を「演算子」といいます。
「演算子」には、「算術演算子」「シフト演算子」などさまざまな「演算子」があります。
これらの「演算子」には優先順位があるので覚えておくといいと思います。

ショートサーキット と 論理演算子

数学の集合と考え方は同じです。 条件が成立していれば真(値は1)、成立していなければ偽(値は0)を返します。
演算子 論理 説明
&& AND &&は、ANDの式が実行されます。 ただし演算子の左側がfalseになれば、右側は実行されません。
|| OR ||は、ORの式が実行されます。 ただし演算子の左側がtrueになれば、右側は実行されません。
! NOT !は、NOT 否定を表します。
整数型のビット演算子で使用する
& AND 両方の変数が整数型の場合は、ビットの演算に使用します。 両方の変数の型がbooleanで無ければなりません。 boolean型を返す式を書いた場合は 必ず演算子の両側が実行されます。
| OR 両方の変数が整数型の場合は、ビットの演算に使用します。 両方の変数の型がbooleanで無ければなりません。 boolean型を返す式を書いた場合は 必ず演算子の両側が実行されます。
^ XOR 両方の変数が整数型の場合は、ビットの演算に使用します。 両方の変数の型がbooleanで無ければなりません。 boolean型を返す式を書いた場合は 必ず演算子の両側が実行されます。

----------------- Logical.java --------------------------
class Logical {
        public static void main(String[] args) {
                int x;
                int y;
                int z;
                boolean comp01;

                x = 1;
                y = 2;
                z = 3;

                comp01 = ((x < y)  && (x < z));

                System.out.println(" comp01 = ((x < y)  && (x < z)) ");
                System.out.println(" comp01 = " + comp01);

                comp01 = ((x > y)  & (x > z));

                System.out.println(" comp01 = ((x > y)  && (x > z)) ");
                System.out.println(" comp01 = " + comp01);

                comp01 = ((x < y)  & (x < z));

                System.out.println(" comp01 = ((x < y)  & (x < z)) ");
                System.out.println(" comp01 = " + comp01);
        }
}
--------実行結果-------------
 comp01 = ((x < y)  && (x < z))
 comp01 = true
 comp01 = ((x > y)  && (x > z))
 comp01 = false
 comp01 = ((x < y)  & (x < z))
 comp01 = true
              
論理演算子も、よく使用しますので、必ず覚えておきましょう。
ここでは、数学での集合の説明は、しませんが基本情報処理の試験などにもよくでますので、理解しといたほうがいいです。

シフト演算子(ビット操作演算子)

ここで簡単なプログラムを書いてみましょう。
---------------- Main01.java --------------------------------
class Main01 {
	public static void main(String[] args) {
		int x;
		int y;
		int z;

		x = 100000;
		y = 100000;


		System.out.println("x = " + x);
		System.out.println("y = " + y);

		z = x + y;

		System.out.println("x + y = " + z);

		z = x * y;

		System.out.println("x * y = " + z);
     }
 }
----------------実行結果-----------------------
x = 100000
y = 100000

x + y = 200000
x * y = 1410065408
			

再帰代入演算子

右辺に評価される変数自身に対して代入します。
プログラムでは、頻繁に使用しますので覚えましょう。
再帰代入演算子計算式
y += 1;y = y + 1;
y -= 1;y = y - 1;
y *= 1;y = y * 1;
y /= 1;y = y / 1;
y %= 1;y = y % 1;


---------------Reflexive.java------------------

class Reflexive {
        public static void main(String[] args) {
                int x;
                int y;

                x = 1;
                y = 2;

                System.out.println("x = " + x);
                System.out.println("y = " + y);

                x += 1;
                y += 1;

                System.out.println("x += 1");
                System.out.println("y += 1");

                System.out.println("x = " + x);
                System.out.println("y = " + y);
        }
}

----------------実行結果---------------------
x = 1
y = 2
x += 1
y += 1
x = 2
y = 3

			
←もどる Home 次へ→