結果が11
ではなく10
になる理由がわかりません。
(1)を変数y
に代入せずにi++
としてreturn i
とすると結果が11
になります。また、int y = i + 1
としてreturn y
としても結果は11
となります。しかし、以下のようにインクリメントを利用して変数y
に代入した場合の結果が10
となるのが理解できません。
基本型を変数に代入すると値がコピーされると聞きました。右辺のi++
が11
になり、それが変数y
にコピーされるとしたら値は11
のはずですが、なぜ結果が10
となるのでしょうか?
java
1public class Main { 2 public static int math(int i) { 3 int y = i++; // (1) 4 return y; 5 } 6 7 public static void main(String[] args) { 8 int i = 10; 9 System.out.println(math(i)); 10 } 11}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/01/24 10:39
退会済みユーザー
2021/03/16 14:37