Javaプログラミング
インクリメント・デクリメント演算子
インクリメント演算子とは、整数型の変数に1を足す(1増加)もので、半角のプラス'+'を2つ並べた'++'で表します。
デクリメント演算子とは、整数型の変数から1を引く(1減少)もので、半角のマイナス'-'を2つ並べた'--'で表します。
表にまとめると以下のようになります。
演算 | 演算子 |
---|---|
インクリメント(1足す) | ++ |
デクリメント(1引く) | -- |
インクリメント演算子とデクリメント演算子は、変数の前に書く方法と、後ろに書く方法の2つがあります。
前に書く方法は「前置」、後ろに書く方法は「後置」と呼ばれます。使い方は以下のとおりです。
// 前置インクリメント
++変数
変数に1を足しています。
// 後置インクリメント
変数++
変数に1を足しています。
// 前置デクリメント
--変数
変数から1を引いています。
// 後置デクリメント
変数--
変数から1を引いています。
インクリメントのJavaソースコード その1
前置と後置でインクリメントを行うソースコードの例です。
Increment1.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016
public class Increment1 { public static void main( String[] args ) { // 変数定義 int a; // 前置インクリメント a = 0; ++ a; System.out.println( "前置インクリメント a=" + a ); // 後置インクリメント a = 0; a ++; System.out.println( "後置インクリメント a=" + a ); } }
Increment1.javaの出力結果
前置インクリメント a=1 後置インクリメント a=1
前置と後置でインクリメントした値がどちらも同じa=1になっています。どちらもa=0に1が足されています。
デクリメントのJavaソースコード その1
前置と後置でデクリメントを行うソースコードの例です。
Decrement1.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016
public class Decrement1 { public static void main( String[] args ) { // 変数定義 int a; // 前置デクリメント a = 0; -- a; System.out.println( "前置デクリメント a=" + a ); // 後置デクリメント a = 0; a --; System.out.println( "後置デクリメント a=" + a ); } }
Decrement1.javaの出力結果
前置デクリメント a=-1 後置デクリメント a=-1
前置と後置でデクリメントした値がどちらも同じa=-1になっています。どちらもa=0から1が引かれています。
インクリメントのJavaソースコード その2
前置と後置で違う値になるようにしたソースコードです。
Increment2.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016
public class Increment2 { public static void main( String[] args ) { // 変数定義 int a, b; // 前置インクリメント a = 0; b = ++ a; System.out.println( "前置インクリメント b=" + b ); // 後置インクリメント a = 0; b = a ++; System.out.println( "後置インクリメント b=" + b ); } }
Increment2.javaの出力結果
前置インクリメント b=1 後置インクリメント b=0
前置と後置でインクリメントした値が違うことがわかります。
これは、前置の方がaに1を足した値をbに代入しているのに対して、後置の方はaの値をbに代入した後でaに1を足すことによって起こる違いです。
デクリメントのJavaソースコード その2
前置と後置で違う値になるようにしたソースコードです。
Decrement2.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016
public class Decrement2 { public static void main( String[] args ) { // 変数定義 int a, b; // 前置デクリメント a = 0; b = -- a; System.out.println( "前置デクリメント b=" + b ); // 後置デクリメント a = 0; b = a --; System.out.println( "後置デクリメント b=" + b ); } }
Decrement2.javaの出力結果
前置デクリメント b=-1 後置デクリメント b=0
前置と後置でデクリメントした値が違うことがわかります。
これは、前置の方がaから1を引いた値をbに代入しているのに対して、後置の方はaの値をbに代入した後でaから1を引くことによって起こる違いです。
インクリメントのJavaソースコード その3
Increment3.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021
public class Increment3 { public static void main( String[] args ) { // 変数定義 int a, b; int n[] = new int[ 3 ]; n[ 0 ] = 2; n[ 1 ] = 9; n[ 2 ] = 8; // 前置インクリメント a = 0; b = n[ ++ a ]; System.out.println( "前置インクリメント b=" + b ); // 後置インクリメント a = 0; b = n[ a ++ ]; System.out.println( "後置インクリメント b=" + b ); } }
Increment3.javaの出力結果
前置インクリメント b=9 後置インクリメント b=2
デクリメントのJavaソースコード その3
Decrement3.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021
public class Decrement3 { public static void main( String[] args ) { // 変数定義 int a, b; int n[] = new int[ 3 ]; n[ 0 ] = 2; n[ 1 ] = 9; n[ 2 ] = 8; // 前置デクリメント a = 1; b = n[ -- a ]; System.out.println( "前置デクリメント b=" + b ); // 後置デクリメント a = 1; b = n[ a -- ]; System.out.println( "後置デクリメント b=" + b ); } }
Decrement3.javaの出力結果
前置デクリメント b=2 後置デクリメント b=9
前置の方はaから1を引いた値が添え字になります。この例ではa=0が添え字になるのでb=n[0]が代入されます。
後置の方はaが添え字になります。この例ではa=1が添え字になるのでb=n[1]が代入され、代入後にaから1が引かれます。
関連コンテンツ
広告

