|
0. 基礎 "=”と"=="の違い - 比較と代入 質問はいつも「自分は正しい」けれども、「どこかが間違えている、という事はわかっている」という考えに基づいています。正しいはずのものが正しくない。それは、自分の知っている法則とコンピューターの成立している法則が異なるためです。 x=1 みなさんこれは理解できると思います。数学では「xが1と等しい」、つまり、xは1である、と言うことです。 次の例を見てください。その差は歴然です。 x=x+1 数学ではどのようにして、これを解決するのでしょうか。まず、両辺からxを引いてみます。両辺から同じ数値を引いたのであれば、値は変わらないはずです。 0=1 これは等しくありませんので、数学的には「解なし」という不可思議な解答になってしまいます。 コンピューターでは立派な文です。 「xにx+1という値を代入する」。つまりは、xは以前の状態から数値を1だけ増やした、という事になります。 それでは、コンピューターでは「等しい」という表現はないのでしょうか。 コンピューターにおける等しいは「==」なのです。
--------------------------------------------------------------- example --------------------------------------------------------------- if ( x = 1 ) y=0; --------------------------------------------------------------- 上の一文ではエラーが出てしまいます。なぜでしょうか。 --------------------------------------------------------------- example - answer --------------------------------------------------------------- if ( x == 1 ) y=0; --------------------------------------------------------------- これでお分かり頂けたでしょうか。「xが1と等しい場合、yに0を代入する」というためには、上のような書式にならなければいけないのです。 実際には、if文、else if文、while文、for文など条件を書かなければならない部分に==を使用しなければならない、という法則に従います。 − 「==」は比較演算子、「=」は代入 - |