teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

説明の追加

2019/01/20 17:22

投稿

jimbe
jimbe

スコア13355

answer CHANGED
@@ -8,8 +8,8 @@
8
8
 
9
9
  プログラムは順番に実行されます. 一行に書かれたプログラムでも, コンピュータの内部では特定の順番に従って実行され, 計算も同様です.
10
10
 
11
- out.print() は括弧の中の値を表示するモノなので, 当然括弧の中が先に計算されます. が, ++/-- はその「計算されるタイミング」に干渉します.
11
+ out.print() は括弧の中の値を表示するモノなので, 当然括弧の中が先に計算されます. が, ++/-- はその「計算(=変数の値が変更)されるタイミング」に干渉します.
12
- 変数の前に ++/-- を書いた場合は先に計算される(普通の)タイミングですが, 後ろに書いた場合は out.print() が先に実行され, その後に計算されるのです. ++/-- の付いている部分が括弧の後ろまで飛び出して, out.print(num++); が out.print(num); num++; となってしまうような感じでしょうか.
12
+ 変数の前に ++/-- を書いた場合は先に計算される(普通の)タイミングですが, 後ろに書いた場合は out.print() が先に実行され, その後に計算(変数の値が変更)されるのです. ++/-- の付いている部分が括弧の後ろまで飛び出して, out.print(num++); が out.print(num); num++; となってしまうような感じでしょうか.
13
13
  「飛び出したら out.print(); num++; じゃないの?」と思われるでしょうけれど, ++/-- は変数部分は残すのです.
14
14
 
15
15
  こういった, 傍目にはなんのためにあるのかサッパリ分からないようなモノなので, 実際使わなくてもプログラムは作れます. 端的には, "num=num+1" と書くよりも "num++" と書いたほうが4文字短いからとか格好良いからとかいうレベルの話です.