Modulo Operator
CoddyのJavaジャーニー「基礎」セクションの一部 — レッスン 16/73。
剰余演算子 % は、除算の余りを返します。Javaでは、シンプルな構文で使用されます:
result = dividend % divisor;- dividend: 割られる数。
- divisor: 被除数を割る数。
- result: 除算の余り。
例えば:
result = 10 % 3;ここでは、10を3で割っています。3は10の中に3回入り、余りは1になります。したがって、resultは1になります。
被除数(割られる数)が除数(割る数)よりも小さい場合はどうなるでしょうか?その場合、除数は0回入るので、余りは単に被除数そのものになります。例えば、2 % 3は2に等しくなります。なぜなら、3は2の中に0回入り、2が残るからです。
通常、剰余演算(modulo)は数値が偶数か奇数かを確認するために使用されます:
- 数値が偶数の場合、2で割ると余りは0になります。
- 数値が奇数の場合、2で割ると余りは1になります。
浮動小数点数(double型)で剰余演算(modulo)を使用する場合、整数と同様に動作しますが、小数の精度が保持されます。例えば:
double result = 5.5 % 2.0;
// 結果は 1.5 です仕組みは次のとおりです。5.5の中に2.0は2回入り(4.0)、余りは1.5になります(5.5 - 4.0 = 1.5)。
注意:double 型の値は近似値として格納されるため、一部の余りはわずかな誤差を伴って表示されます。例えば、5.2 % 2.0 は 1.2 ではなく 1.2000000000000002 と表示されます。これは浮動小数点の正常な動作であり、コードのミスではありません。
別の例:
double result = 7.5 % 3.5;
// resultは0.5ですチャレンジ
初心者3つの変数、a (int)、b (double)、および c (int) を、それぞれ 9、2.6、11 という値で初期化するコードを記述してください。
その後、以下の変数を初期化してください:
d (int):aを2で割った剰余を保持しますe (int):aを3で割った剰余を保持しますf (double):bを1.5で割った剰余を保持しますg (double):bを3.9で割った剰余を保持しますh (int):cを10で割った剰余を保持します
結果を確認し、異なる被除数と除数が結果にどのように影響するかを見てみましょう。
自分で試してみよう
public class Main {
public static void main(String[] args) {
// 以下にコードを入力してください
// 以下の行は変更しないでください
System.out.println("a = " + a);
System.out.println("b = " + b);
System.out.println("c = " + c);
System.out.println("d = " + d);
System.out.println("e = " + e);
System.out.println("f = " + f);
System.out.println("g = " + g);
System.out.println("h = " + h);
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
4Operators Part 1
Arithmetic OperatorsModulo OperatorIncrement/DecrementPost Increment/DecrementArithmetic ShortcutsComparison OperatorsString Comparison5Operators Part 2
Logical Operators Part 1Logical Operators Part 2Recap - Simple LogicLogical Operators Part 3Logical Operators Part 43Variables Part 2
ConstantsNaming ConventionsRecap - Initialize VariablesType Casting Part 1Type Casting Part 26Decision Making
If StatementIf - ElseSwitch StatementTernary OperatorRecap - If ElseNested If - Else