Unity入門 - C#スクリプトの文法②演算子 -
初めに
+や-、=、&、^など演算子の使い方について、解説いたします。
算術演算子
記号 | 意味 | 使い方 | 結果 |
---|---|---|---|
+ | 加算(足し算) | 2 + 3 | 5 |
- | 減算(引き算) | 5 - 1 | 4 |
* | 乗算(掛け算) | 2 * 5 | 10 |
/ | 除算(割り算) | 8 / 2 | 4 |
% | 剰余(余り) | 11 % 4 | 3 |
+と-は説明不要だと思います。プログラミング言語では掛け算を×ではなく、*で表します。また、割り算を÷ではなく分数のように/(スラッシュ)で表します。
剰余は余りのことです。11 % 4は11を4で割った余りである3になります。
除算の注意点
数にはint型(整数)とfloat型やdouble型(小数)がありました。float/floatは問題なく計算してくれますが、int/intをすると、小数点以下を切り捨てした数字がでてきます。
int a = 6; int b = 10; int c = a / b * 100; //cの値は0になる float d = 6.0f; float e = 10.0f; float f = d / e * 100f; //fの値は100になる
上記のようにint型で割り算をすると、6/10は0となるので、求めていた数値が出ない場合があります。int型の割り算は小数点以下切り捨てであることに注意しましょう。
二項関係演算子・二項等値演算子
二つの変数の関係を見て、bool型(true、false)で返します。
記号 | 使い方 | 意味 |
---|---|---|
== | x == y | x と y が等しければtrue |
!= | x != y | x と y が異なっていればtrue |
> | x > y | x が y より大きければtrue |
< | x < y | x が y より小さければtrue |
>= | x >= y | x が y 以上であればtrue |
<= | x <= y | x が y 以下であればtrue |
代入演算子
変数に値を代入するときに使います。左の変数に右の値を代入します。
式 | 意味 |
---|---|
x = y | x に y を代入 |
x += y | x に y を足した値を x に代入 |
x -= y | x にからy を引いた値を x に代入 |
x *= y | x に y を掛けた値を x に代入 |
x /= y | x を y で割った値を x に代入 |
x %= y | x を y で割った値を x に代入 |
int a = 6; int b = 4; a += b //6 + 4 で a = 10 a -= b //10 - 4 でa = 6 a *= b // 6 * 4 で a = 24 a /= b //24 / 4 で a = 6 a %= b //6 % 4 で a = 2
インクリメント・デクリメント
式 | 名前 | 使用例 | 結果 |
---|---|---|---|
++x | 前置きインクリメント | int y = ++x | xを1増やし、yにxを代入 |
x++ | 後置きインクリメント | int y = x++ | yにxを代入し、xを1増やす |
--x | 前置きデクリメント | int y = --x | xを1減らし、yにxを代入 |
x-- | 後置きデンクリメント | int y = x-- | yにxを代入し、xを1減らす |
++は1増やす、--は1減らすことを意味します。また、前置きは先に増減させてから代入、後置きは代入してから増減させることになります。
int a_1 = 7; int b_1 = ++a_1 //a_1 = 8, b = 8 int a_2 = 7 int b_2 = a_2++ //a_2 = 8, b_2 = 7 int a_3 = 7 int b_3 = --a_3 //a_3 = 6, b_3 = 6 int a_4 = 7 int b_4 = a_4-- //a_4 = 6, b_4 = 7
論理演算子
式 | 意味 | |
---|---|---|
x & y | x と y の論理積を計算 | ともにtrueならばtrue。それ以外はfalse |
x | y | x と y の論理和を計算 | どちらかがtrueならばtrue。それ以外はfalse |
!x | x の論理否定を計算 | xがtrueならばfalse、falseならばtrueを返す |
x ^ y | x と y の排他的論理和を計算 | 論理和の否定を返す |
論理演算はtrue、falseの演算になります。高校数学で学ぶ "かつ" や "または" を使ったものです。
bool x = true; bool y = true; bool z = flase; bool a = x & y //trueかつtrueはtrue bool b = x & z //trueかつfalseはfalse bool c = x | y //trueまたはtrueはtrue bool d = x | z //trueまたはfalseはtrue bool e = x ^ y //x | y = trueなのでfalse bool f = x ^ z //x | z = trueなのでfalse bool g = !x //x = trueなのでfalse bool h = !z //z = falseなのでtrue