ちょっと分からなくなったので質問させていただきます.
Javaの演算子の優先順位が15段階に分かれていて,その中で後置インクリメント・デクリメントが1番,前置インクリメント・デクリメントが2番,そして代入演算子が最後(15番目)となっています.
ところが,前置・後置インクリメントのサンプルコードとして以下のようなものがありました.
(引用:読本Java/2.8 式と演算)
(前置)
lang
1class Test { 2 public static void main(String args[]) { 3 int iValue = 10; 4 int iTemp = ++iValue; 5 System.out.print("iValue = "); 6 System.out.println(iValue); //11 7 8 System.out.print("iTemp = "); 9 System.out.println(iTemp); //11 10 } 11}
(後置)
lang
1class Test { 2 public static void main(String args[]) { 3 int iValue = 10; 4 int iTemp = iValue--; 5 System.out.print("iValue = "); 6 System.out.println(iValue); //9 7 8 System.out.print("iTemp = "); 9 System.out.println(iTemp); //10 10 } 11}
「前置」の場合は,順位が上の前置インクリメントで値が増加してから代入される,という優先順位でわかるのですが,
「後置」の場合,順位が下の代入が処理されてからデクリメントされており,示されている優先順位と逆のような気がします.
私がどこかで勘違いをしているがためにこの矛盾が起きていると思うのですが,どなたかご教授下さい.

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/07/09 03:04 編集