0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Unity学習記録 #002 比較演算子

Posted at

演算子

どの言語でも比較的頻繁に使われる代表的な演算子は大きく3つ
・算術演算子( +, -, *, /, % ... )
・比較演算子(<, >, <=, >=, ==, !=, ...)
・論理演算子(&&, ||, !, ...)

他にも演算子があるのか軽く調べてみたところ、結構たくさんあるみたいです。
・ビット演算子(データ圧縮、暗号化などで使用される演算子)
・アドレス演算子(メモリ上のアドレスを取得するための演算子)
・参照演算子(参照型変数の値を取得するための演算子)
・キャスト演算子(型を一時的に別の型に変換するための演算子)
・他にも、スコープ演算子、アサーション演算子などなど...。

初学者がまず身に着けたい演算子は最初に記述している3つ。それぞれ中身を見てみます。

算術演算子

int a = 10;
int b = 3;

Debug.log(a + b);  // 加算(plus)
Debug.log(a - b);  // 減算(minus)
Debug.log(a * b);  // 乗算(multiply)
Debug.log(a / b);  // 除算(divide)
Debug.log(a % b);  // 剰余演算(modulo)

a++;  // 前置インクリメント(aの値に1を足す)
b--;  // 前置デクリメント (bの値から1を引く)
Debug.Log(a);
Debug.Log(b);

Debug.Log(a += 1);  // 加算代入(a = a + 1 と同じ計算)
Debug.Log(b -= 3);  // 減算代入(b = b - 3 と同じ計算)

Debug.Log(-a);  // 単項マイナス(符号の反転)

コードで表記してみましたが、どれもよく使われる書き方です。
たくさんコードを書いているうちに、書き方は自然と身についてくると思います。

少し余談なのですが、次のコードの出力結果はどのようになると思いますか?

int a = 4;
Debug.Log(a++);

実際にコードを書いていく中で、上記のようなコードを書くことはまずないと思いますが、出力結果は "4" になります。
a++ の式以降の行では 元の値に1を足した値として扱われますが、数式全体としては1が足される前の値で評価されるようです。参考までに記述しておきます。

比較演算子

int a = 4;
int b = 12;

Debug.log(a == b);  // aとbが等しい → True
Debug.log(a != b);  // aとbが等しくない → True
Debug.log(a < b);  // aがbより小さい → True
Debug.log(a <= b);  // aがb以下 → True
Debug.log(a > b);  // aがbより大きい → True
Debug.log(a >= b);  // aがb以上 → True

比較演算子の出力結果は "True" "False" の2つです。比較した数式が正しいか、間違っているかを "True" "False" で出力します。「真偽値」や、「論理値」と表現されます。

サンプルコードでは数値を扱いましたが、比較演算子の "==" は文字列の比較でも使用できます。

この論理値は "1" と "0" で表現されることもありますが、"1" と "0" は数値です。論理値と数値は異なる型となるため、お互いを比較することはできません。(true == 1 のような比較はできないです。)ただし、if文の条件式に理論値を使用する場合は暗黙的に、true は 1 に変換され、false は 0 に変換されているようです。

論理演算子

//論理積(AND)
if ("条件式1" && "条件式2")
{
    //条件式1と条件式2の両方が条件を満たした時の処理
}

//論理和(OR)
if ("条件式1" || "条件式2")
{
    //条件式1と条件式2のどちらか1つでも条件を満たした時の処理
}

//論理演算子は複数組み合わせることもできる
if ("条件式1" || "条件式2" && "条件式3")
{
    //条件式1を満たすか、または条件式2と条件式3が同時に条件を満たした時の処理
}

//論理否定
bool a = true;
bool b = !a;

論理演算子は条件式でよく使われる演算子です。複数の論理演算子を組み合わせることも可能ですが、条件式が長く複雑になりそうな場合は、条件を分けたほうがいい場合もあります。

論理否定は条件を反転させる場合などに使用されます。例えば、bool型の変数aの初期値を "true" とします。別途用意した変数bにaの否定を代入した場合、bの値は "true"の否定なので、"false"が代入されたことになります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?