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

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


*x * y乗算演算子
/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.


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


int max = 0.Max;

int result = max * 2; // Over flow. Exception will be thrown.

オペランドが 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 105.

除算演算子

オペランドに除算を実行するための演算子です。

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

オペランドに 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.


結果の型が int か long の場合は、剰余は切り捨てられます。

ゼロによる除算は例外がスローされます。

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

オペランドが 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 1.

剰余演算子

オペランドに除算を実行して剰余を求める演算子です。

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

オペランドに 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.