代入と評価の順序
プログラミングを学ぶ際に、ほとんどの学生が最初に直面する2つの難点は、代入操作と評価の順序だ。
代入操作
ほとんどのプログラミング言語のほとんどすべてのプログラムで、次のような行を見かけるだろう。
この行の意味は、"a
の値を10にする"ということだ。同様に、次の行は"b
の値を20にする"という意味だ。
この情報に基づいて、次の行について何と言えるか?
残念ながら、この行は、私たちが知っている数学の等価の概念とは関係がない。上記の式は、"aはbと等しい"という意味ではない。前の2行と同じ論理を適用すると、上記の式は"a
の値をb
の値と同じにする"という意味になる。
数学でよく知られている=
記号は、プログラミングではまったく異なる意味を持つ。左側の値を右側の値と同じにする、という意味である。
評価の順序
通常、プログラムの操作は、プログラムに記述されている順番で段階的に実行される。(この規則には例外があるが、それについては後の章で説明する。)プログラムでは、前の3つの式は次の順番で実行される。
この3行の意味は、"a
の値を10にし、次に b
の値を20にし、最後に a
の値をb
の値と同じにする"ということだ。したがって、この3つの演算が実行されると、a
とb
の値はどちらも20になる。
演習
次の3つの操作によって、a
とb
の値が入れ替わることに注目。最初にそれぞれの値が1と2だった場合、操作後は2と1になる。