Home About Rice Downloads Documents Others Cooker CookerGX
Documents  >  Tutorial  >  group3
第三群の演算子

この章の目的。

乗算演算子、除算演算子、剰余演算子について学びます。

第三群の演算子。

第三群の演算子は、以下のとおりです。


*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.

realリテラルがオーバーフローを起こさないのに対し、乗算の結果としてのrealインスタンスはオーバーフローにより、例外をスローします。

すなわち、演算の結果が無限大と評価される場合は、オーバーフローとして、例外がスローされます。

除算演算子

除算演算子は、左のオペランドを右のオペランドで除算するための演算子です。オペランドは、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かlongの場合は、剰余は切り捨てられます。

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

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

剰余演算子

剰余演算子は、左のオペランドを右のオペランドで除算し、その剰余を求めるための演算子です。オペランドは、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.


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

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

Copyright © Rice All rights reserved.