Javaの問題集をやっていて、インクリメント&デクリメント演算子についての問題の解答および解説について疑問点があったので、質問させていただきます。
問題は
「下記のコードをコンパイルおよび実行するとどのような結果になりますか。」
という問題で、答えは
x:5 y:6
でした。
Java
1class DecrementTest { 2 public static void main(String args[]) { 3 int a = 5; 4 int b = 6; 5 6 int x = --a; 7 int y = b--; 8 9 x = y--; 10 y = x--; 11 12 System.out.println("x: " + x + " y: " + y); 13 } 14}
しかし、
int x = --a;
でxの値が4になった後で
y = x--;
となっている箇所でyの値が4になると思うのですが、なぜy:6と出力されるのでしょうか?
問題集の解説には「10行目(y = x--;)では、変数yに変数xの値を代入してから変数xの値をデクリメントするため、10行目の処理が終了した時点で変数xは5、変数yは6を保持します。」と書いてあったのですが、『変数yに変数xの値を代入してから変数xの値をデクリメントする』前にxの値は4だと思うのですが、いかがでしょうか?
どなたかご解説をいただければ幸いです。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/30 12:19