Tonyu Lab
Contents

 
Top
About Us
About Tonyu
Tonyu Program Tech
0.基礎
1.update()
2."="と"=="の違い
1.条件節
2.クラスの継承
3.メソッド
4.コンストラクター
BBS
Link
 
Author: Nuntora

0. 基礎

 "=”と"=="の違い - 比較と代入

 質問はいつも「自分は正しい」けれども、「どこかが間違えている、という事はわかっている」という考えに基づいています。正しいはずのものが正しくない。それは、自分の知っている法則とコンピューターの成立している法則が異なるためです。
 「=」は、数学では「等しい」ことを意味しています。しかし、コンピューターの世界では代入を意味しています。どういうことでしょうか。

 x=1

 みなさんこれは理解できると思います。数学では「xが1と等しい」、つまり、xは1である、と言うことです。
 コンピューターでは「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文など条件を書かなければならない部分==を使用しなければならない、という法則に従います。

 − 「==」は比較演算子、「=」は代入 -