【C#】=と==の違い

コードを書いていて=と==が出てくることがあります。

=が1つと2つの場合では意味が全く異なります。

今回はこの2つの違いについて紹介していきます。

目次

=は代入、==は左右の値が同じかどうかを表す

=は変数など値を代入するときに使い、

==はif文で値が同じかどうかというのを判定する時に使います。

=

var speed = Vector3.zero;
speed.z = EnemySpeed;
var rot = transform.eulerAngles;

サンプルを見る通り、変数など値を代入するときに使います。

右辺の値を左辺に代入することを意味します。

==

int three = 3;
int four = 4;

if (three == 3)
{
    Console.WriteLine("数字は" + three + "です。");
}

if(three == 4)
{
    Console.WriteLine("数字は" + four + "です。");
}

if文でよく使います。

例を見る通り、if文で左辺の値と右辺の値が等しいかどうかの判定を行っています。

では以下は代入か等値かどちらでしょう?

サンプルコードはUnityでオブジェクトが衝突したときの処理。

 private void OnCollisionEnter(Collision collision)
 {
  
     if (other.tag == "Player")
     {
         Target = other.gameObject;
     }
 }

【問題】

① if (other.tag == “Player”)

の==は代入か左右の値の比較かどちらでしょう?

答え

左右の値の比較

② Target = other.gameObject;の

=は代入か左右の値の比較かどちらでしょう?

答え

代入

よくできました。これで2つの違いが理解できたと思います。

まとめ

いかがだったでしょうか。

=は代入、==は左辺と右辺の値が等しいかどうか

ということを頭に入れてもらったらいいと思います。

こちらの記事を執筆した理由はUnityでif文を書いているときに=で書いてしまって

エラーが発生してしまったからです。

私もプログラミング学習初期に覚えていたものが抜けてしまうことがあったので

知識の再確認という意味でも執筆しました。

if文で=で書いてしまってエラーが出ている人の助けにもなったらいいと思います。

ではでは!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

電気制御設計→ITエンジニア
前職は電気系のエンジニアで物流倉庫などの設備を動かしていました。
現在はITエンジニアとして開発に従事。
業務では主にUnity、C#、.NETを利用。
現在、UnityとC#を用いて業務用スマホアプリを開発中。

コメント

コメントする

目次