/var/log/masayoshi/masayoshi.life.log

とりあえず、書きたいこと書くだけ。

あれ結果が違うぞ



まずはソースコードから



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