その他の演算子

2010 年 3 月 8 日 月曜日  【 カテゴリー: Javaの基本


算術演算子」「シフト演算子」そして「論理演算子」についてみてきました。今回はその他の演算子をまとめてみます。

代入演算子

代入演算子は「 = 」です。変数に値を代入します。基本的に同じデータ型同士で行いますが異なる型でも代入をすることができます。このとき制約があって左辺の方が表現範囲が大きくなくてはいけません。

double > float > long > int > short > byte

java043

サンプルで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」が代入されています。同様なことはデクリメントでも起こりますので代入演算子と併用するときは注意が必要になります。


にほんブログ村 IT技術ブログ Webサイト構築へ
にほんブログ村
【WEBサイト構築・プログラムブログ】
ランキング参加中!よろしければ「クリック」お願いします。
にほんブログ村 IT技術ブログ プログラム・プログラマへ
にほんブログ村
2010 年 3 月 8 日 月曜日  【 カテゴリー: Javaの基本

コメントをどうぞ

※管理者による確認後に表示されます。表示までしばらくお待ちください。