あれ結果が違うぞ
まずはソースコードから
class java_study_7{
public static void main(String args[]){
int nom1,nom2 ;
int nom3 ;nom1 = 15 ;
nom2 = nom1++ ;
System.out.println("nom1 = " + nom1) ;
System.out.println("nom2 = " + nom2) ;nom1 = 15 ;
nom3 = ++nom1 ;
System.out.println("nom1 = " + nom1) ;
System.out.println("nom4 = " + nom3) ;
}
}
これはどっちも変数「nom1」の値と「nom2」または「nom3」の値を表示するプログラムだ、どっちもnom1に1を加算している。
しかし、上と下では数値が変わってくるのだ。
まず上のパターンだ
nom1 = 15 ;
nom2 = nom1++ ;
System.out.println("nom1 = " + nom1) ;
System.out.println("nom2 = " + nom2) ;
の値から見てみよう、これは
nom1 = 16
nom2 = 15
と表示されるなんか納得がいかない、なんで「nom1の値が16で、nom2の値が15」なのか?
そして下のパターンだ
nom1 = 15 ;
nom3 = ++nom1 ;
System.out.println("nom1 = " + nom1) ;
System.out.println("nom3 = " + nom3) ;
こっちはどっちも
nom1 = 16 ;
nom3 = 16 ;
と表示される、とりあえずこうだとまとめてみた
- 上の式の場合、nom2には加算していないnom1の値が渡った
- 下の式の場合だと、nom3には加算されたnom1の値が渡った
こうでないと説明がつかない、ただこれは代入したときのパターンになるからなぁ。
普通に「nom1++」や「++nom1」の時はどうなるかはお楽しみだw