Home News DOC Class DL Others Cooker
Documents  >  Tutorial  >  優先度 5
優先度 5 の演算子

優先度 5 の以下の演算子について説明します。


+x + y加算演算子
-x - y減算演算子

二項算術演算子です。左右のオペランドに算術演算を実行します。

オペランドは int、long、real クラスのどれかでなければなりません。これらのクラスは左右のオペランドに混在できます。


目次:


加算演算子

減算演算子

加算演算子

左右のオペランドを加算するための演算子です。

結果のクラスはオペランドのクラスに依存します。

オペランドに real クラスのインスタンスがあれば、結果のクラスは real です。


real r0 = 123.5 + 10.0; // The left is real and the right is real. Therefore, result is real.

real r1 = 123.5 + 10; // The left is real and the right is int. Therefore, result is real.

real r2 = 123.5 + 10L; // The left is real and right is long. Therefore, result is real.


オペランドに real クラスのインスタンスが無く、long クラスのインスタンスがあれば、結果のクラスは long です。


long l0 = 123L + 10L; // The left is long and the right is long. Therefore, result is long.

long l1 = 123L + 10; // The left is long and the right is int. Therefore, result is long.


それ以外なら結果のクラスは int です。


real i0 = 123 + 10; // The left is int and the right is int. Therefore, result is int.


結果がクラスの値の範囲を越えた場合は例外がスローされます。

オペランドが proxy クラスを返す場合は proxy クラスの実体が自動的に使用されます。proxy クラスの Entity ゲッターを呼び出したのと同じ結果になります。


int i = 10;

real r = 10.5;

proxy pro = new proxy(i);

proxy pro2 = new proxy(r);

real r2 = pro2 + pro; // r2 is 20.5.

連結演算子

左右のオペランドが string クラスの場合は、記号+は加算演算子ではなく連結演算子です。

連結演算子は左右のオペランドを連結した新しい string クラスのインスタンスを返します。


string s = "Hellow " + "world!"; // The result is "Hellow world!".

オペランドが proxy クラスを返す場合は proxy クラスの実体が自動的に使用されます。proxy クラスの Entity ゲッターを呼び出したのと同じ結果になります。


string s = "A";

string s2 = "a";

proxy pro = new proxy(s);

proxy pro2 = new proxy(s2);

string s3 = pro2 + pro; // s3 is "aA".

減算演算子

左右のオペランドを減算するための演算子です。

結果のクラスはオペランドのクラスに依存します。

オペランドに real クラスのインスタンスがあれば、結果のクラスは real です。


real r0 = 123.5 - 10.0; // The left is real and the right is real. Therefore, result is real.

real r1 = 123.5 - 10; // The left is real and the right is int. Therefore, result is real.

real r2 = 123.5 - 10L; // The left is real and right is long. Therefore, result is real.


オペランドに real クラスのインスタンスが無く、long クラスのインスタンスがあれば、結果のクラスは long です。


long l0 = 123L - 10L; // The left is long and the right is long. Therefore, result is long.

long l1 = 123L - 10; // The left is long and the right is int. Therefore, result is long.


それ以外なら結果のクラスは int です。


real i0 = 123 - 10; // The left is int and the right is int. Therefore, result is int.


結果がクラスの値の範囲を越えた場合は例外がスローされます。

オペランドが proxy クラスを返す場合は proxy クラスの実体が自動的に使用されます。proxy クラスの Entity ゲッターを呼び出したのと同じ結果になります。


int i = 10;

real r = 10.5;

proxy pro = new proxy(i);

proxy pro2 = new proxy(r);

real r2 = pro2 - pro; // r2 is 0.5.

Copyright © Rice All rights reserved.