Java入門④ 計算する ── 演算子のはなし

前回は「データ型(箱の種類)」をやりました。

今回は、その数を使って計算します。計算に使う記号を演算子(えんざんし)と呼びます。

演算子とは、計算やくらべごとをするための記号です。

まずは、四則演算

足し算・引き算・かけ算・わり算。小学校で習ったあれが、Javaでもできます。

int a = 10;
int b = 3;

System.out.println(a + b);   // 13(足し算)
System.out.println(a - b);   // 7 (引き算)
System.out.println(a * b);   // 30(かけ算)
System.out.println(a / b);   // 3 (わり算)

ほとんど見たままですが、2つ注意があります。

  • *かけ算は × ではなく ``**(アスタリスク)
  • わり算は ÷ ではなく /(スラッシュ)

キーボードに ×÷ がないので、代わりの記号を使う、と覚えてください。

わり算の、ちょっと不思議なところ

上の例、わり算 10 / 3 の結果が 3 になっています。「3.33... じゃないの?」と思いますよね。ここは、学生が課題で必ず引っかかるポイントです。

理由は、整数(int)どうしの計算は、結果も整数になるから。小数点以下は、バッサリ切り捨てられます。

小数の答えがほしいなら、double を使います。

double a = 10;
double b = 3;
System.out.println(a / b);   // 3.3333333333333335

前回の「整数か小数か」の使い分けが、ここで効いてきます。「割り算で小数がほしいなら double」と覚えておきましょう。

そして、「割った余り」を知りたいときは % を使います。

System.out.println(10 % 3);   // 1(10を3で割った余り)

この %(余り)は、地味ですが、「偶数か奇数か」を判定するときなどに大活躍します。覚えておいてください。

くらべる演算子

演算子には、計算だけでなく「くらべる」ものもあります。

int a = 10;
int b = 3;

System.out.println(a > b);    // true (aはbより大きい?)
System.out.println(a < b);    // false(aはbより小さい?)
System.out.println(a == b);   // false(aとbは等しい?)

くらべた結果は、前回出てきた boolean(true か false) で返ってきます。

「10は3より大きい?」→ true。
「10と3は等しい?」→ false。

このくらべる演算子は、次回以降の if文(条件分岐) で、これでもかというほど使います。今は「こういう記号がある」と知っておけば十分です。

つまずきポイント

学生が100%間違えるのが、「等しい」は ==(イコール2つ)ということです。

a == b   // 「aとbは等しい?」と、くらべている(正しい)
a = b    // 「aにbを入れる」という意味になってしまう!

イコール1つ(=)は、第2回でやった「箱に入れる」の意味でした。「等しいか、くらべたい」ときは、イコールを2つ(==重ねます。

これは、慣れるまで本当によく間違えます。「くらべるときは、イコール2つ」と、口に出して覚えてしまいましょう。

まとめ

  • 計算は + - * /、余りは %
  • 整数どうしの割り算は、小数が切り捨てられる(小数がほしいなら double)
  • くらべるのは > < ==、結果は boolean で返る
  • 等しいかのくらべは、==(イコール2つ)

次回はいよいよ、プログラムに「入力」を受け取らせます。キーボードからの入力 です。