その他の演算子
「算術演算子」「シフト演算子」そして「論理演算子」についてみてきました。今回はその他の演算子をまとめてみます。
代入演算子
代入演算子は「 = 」です。変数に値を代入します。基本的に同じデータ型同士で行いますが異なる型でも代入をすることができます。このとき制約があって左辺の方が表現範囲が大きくなくてはいけません。
double > float > long > int > short > byte

サンプルでdouble型からint型への代入はエラーになり、int型からdouble型への代入は可能なことがわかります。リテラルの場合も同様ですので代入するときは表現範囲を意識する必要があります。
複合代入演算子
「複合」とあるとおり、代入演算子「=」と他の演算子を併用します。
| += | a += b | a = a + b と同じ (足し算して代入) |
|---|---|---|
| -= | a -= b | a = a - b と同じ (引き算して代入) |
| *= | a *= b | a = a * b と同じ (掛け算して代入) |
| /= | a /= b | a = a / b と同じ (割り算して代入) |
| %= | a %= b | a = a % b と同じ (割り算した余りを代入) |
| <<= | a <<= b | a = a << b と同じ (左シフトして代入) |
| >>= | a >>= b | a = a >> b と同じ (算術右シフトして代入) |
| >>>= | a >>>= b | a = a >>> b と同じ (論理右シフトして代入) |
| &= | a &= b | a = a & b と同じ (論理積して代入) |
| |= | a |= b | a = a | b と同じ (論理和して代入) |
| ^= | a ^= b | a = a ^ b と同じ (排他的論理和して代入) |
インクリメント、デクリメント
インクリメント演算子は「++」で1加算します。デクリメント演算子は「--」で1減算します。
| ++ | a++ または ++a | a = a + 1 と同じ。a++を後加算、++aを先加算という |
|---|---|---|
| -- | a-- または --a | a = a - 1 と同じ。b--を後減算、--aを先減算という |
インクリメントとデクリメントとも「後」「先」があります。後加算と先加算の結果は同じです。後減算と先減算も結果は同じです。単体で使うときは「後」「先」どちらをつかってもかまいません。しかし代入と一緒に使う場合、代入先の結果が違ってくるので注意が必要です。
public class sample01 {
public static void main(String[] args) {
int a , b;
a = 10;
b = a++;
System.out.println( a ); //結果 11
System.out.println( b ); //結果 10
a = 10;
b = ++a;
System.out.println( a ); //結果 11
System.out.println( b ); //結果 11
}
}
インクリメントの例です。インクリメントをしている変数aの結果は「後加算」でも「先加算」でも同です。しかし、代入先の変数bの結果は違います。なぜなら後加算は変数aの値を変数bに代入した後に1を加算しています。ですので変数bには加算前の「10」が代入されています。それに対して前加算は変数bに代入する前に1を加算します。ですので加算後の「11」が代入されています。同様なことはデクリメントでも起こりますので代入演算子と併用するときは注意が必要になります。
2010 年 3 月 8 日 月曜日 【 カテゴリー: Javaの基本 】
