算術演算子

算術演算子は、加算や減算などの数学的な演算を行うために用いる演算子です。


taiseiue | 2021-12-25

算術演算子には、単項演算子と2項演算子の2種類があります。

  • 単項演算子は、あるひとつの値に対して演算を行います
  • 2項演算子は、あるふたつ以上の値に対して演算を行います

算術演算子は、数値型の値同士で使用できます。

単項演算子

インクリメント演算子 ++

インクリメント演算子(++)は、変数に1を加算します。これを インクリメント と呼びます。

後置インクリメント演算子

次の例に示すように、x++の表す値はxのインクリメント前の値です。

AliceScript
var x = 0;
print(x);   //出力:0
print(x++); //出力:0
print(x++); //出力:1

前置インクリメント演算子

次の例に示すように、++xの表す値はxのインクリメント後の値です。

AliceScript
var x = 0;
print(x);   //出力:0
print(++x); //出力:1
print(++x); //出力2

デクリメント演算子 --

デクリメント演算子(--)は、変数から1を減算します。これを==デクリメント== と呼びます。

後置デクリメント演算子

次の例に示すように、x--の表す値はxのデクリメント前の値です。

AliceScript
var x = 3;
print(x);   //出力:3
print(x--); //出力:3
print(x--); //出力:2

前置デクリメント演算子

次の例に示すように、--xの表す値はxのデクリメント後の値です。

AliceScript
var x = 3;
print(x);   //出力:3
print(--x); //出力:2
print(--x); //出力:1

単項プラス演算子と単項マイナス演算子

単項プラス演算子+ではその値が返されます。単項マイナス演算子-ではその値に-1を掛けたものが返されます。 次の例を参照してください。

AliceScript
print(+1);  //出力: 1
print(-1);  //出力:-1

2項演算子

加算演算子 +

加算演算子+は、それらの値の合計を計算します。

AliceScript
print(1 + 1);   //出力:2
print(2 + 3.5); //出力:5.5

減算演算子 -

減算演算子-は、左の値から右の値を減算します。

JavaScript
print(2 - 1);  //出力: 1
print(1 - 2);  //出力:-1
print(2.3 - 1);//出力:1.3

乗算演算子 *

乗算演算子*は、それらの値の積を計算します。

AliceScript
print(2 * 4);  //出力:8
print(2 * 0.5);//出力:1

除算演算子 /

除算演算子/は、左の値を右の値で除算します。

AliceScript
print(6 / 2); //出力:  3
print(1 / 2); //出力:0.5

べき乗演算子

べき乗演算子**は、左の値の右の値乗を計算します。

AliceScript
print(2 ** 3);  //出力:8

累乗根を計算するには、以下のように指数の逆数をとります。

AliceScript
number n = 3;
// 指数の逆数をとる
number exp = 1 / n;
// 計算
number result = 8 ** exp;
print(result); //出力:2

剰余演算子 %

剰余演算子%は、左側の値を右がの値で除算した後の余りを計算します。

AliceScript
print(3 % 2); //出力:  1
print(6 % 2); //出力:  0(割り切れる)
print(-0.5 % 2); //出力:-0.5

剰余を求める値xyが有限値の場合、x % yの結果は、次のような値zとなります。

  • zの符号はxの符号と同じになります。(\(z=0\)でない限り)
  • zの絶対値は、\(|x| - n * |y|\)の値になります。(ただし、\(n \geq \frac{x}{y}\))

算術演算とオーバーフロー

AliceScriptの数値型では、オーバーフローが起こっても例外を発生させません。その代わり、無限値やNaNの値を返します。

AliceScript
print(1 / 0); //出力:∞
print(0 / 0); //出力:NaN