2007年10月15日月曜日

演算子

代入演算子

x = y     (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++     (x = x + 1)     x を利用してからインクリメント
x--     (x = x - 1)     x を利用してからデクリメント
++x     (x = x + 1)     x をインクリメントしてから利用
--x     (x = x - 1)     x をデクリメントしてから利用


論理演算子

x & y     x と y が true の場合 true を返す
x y     x か y のとちらかが true の場合 true を返す
x ^ y     排他的論理輪
!x     x でない場合 true を返す
x && y     x と y が true の場合 true を返す
            左辺が false の場合右辺を評価しない
x y     x と yの どちらかが true の場合 true を返す
            左辺が true の場合右辺を評価しない

文字列連結演算子

String s1 = "Hello " + "world"; (Hello world)
String s2 = "Hello " + 100; (Hello 100)
どちらか片方が String の場合 + 演算子は文字列連結演算子となる。


ビットシフト演算子

x >> n     x を2の n 乗で割る(右に n ビットシフト)
x << n     x に2の n 乗を掛ける(左に n ビットシフト) 
x >>> n     右に n ビットシフトして最初の符号を 0 にする

<サンプル>
public class Sample {
    public static void main(String[] args) {
        int a = 0;
        int b = 0;
        for (int i = 0; i < 5; i++) {
            if ((++a < 2) && (++b < 2)) {
                a++;
            }
        }
        System.out.println("a = " + a + " b = " + b);
    }
}
<出力結果>
a = 6 b = 3

0 件のコメント: