Javaプログラミング入門 – もっと複雑な計算を行う

注意: この記事は1年以上前に掲載されたものです。情報が古い場合がありますのでお気を付け下さい。

前回では簡単な計算について説明を行ったが、この項ではもっと複雑な計算について学習したい。

複雑な計算

まずは、以下の計算式の答えはいくらになるだろうか?

3 + 4 × 12 − 6 ÷ 3

下記の問題について答えを出すために、以下のコードを書いて、保存しよう。

public class CalcComplex {
    public static void main(String [] args) {
        System.out.println("答えは" + (3 + 14 * 12 - 6 / 3) + "です。");
    }
}

保存したあと、コンパイルして実行すると、「答えは169です。」と表示される。なぜそうなるのだろうか。

計算の法則として、まずは掛け算と割り算からはじまり、そのあとに足し算と引き算が行われる。となると、まずは14×12=168となり、6÷3=2となる。すると、以下の計算式となる。

3 + 168 − 2

そして、足し算と引き算を行うことのだが、足し算と引き算は同じ優先順位となるため((掛け算とわ割り算も同じ優先順位))、左から計算される。つまり、3+168を行って171となり、それから2を引いて169となるのである。

カッコが含まれている場合

なお、計算式の中にカッコで囲まれているものがある場合、それはカッコで囲まれているものから計算されるようになっている。以下の計算式の場合はどうなるだろうか。

3 + 12 × (4 + 2) − 8 ÷ (6 − 2)

これもコードに書いて、コンパイルして実行しよう。

public class CalcComplex2 {
    public static void main(String [] args) {
        System.out.println("答えは" + (3 + 12 * (4 + 2) - 8 / (6 - 2)) + "です。");
    }
}

この場合は「答えは73です。」と表示される。この場合は、まずはカッコで囲まれている数字から計算されるので、4+2と、6−8が計算されて、以下のようになる。

3 + 12 × 6 − 8 ÷ 4

次に掛け算と割り算の計算が行われて、以下となる。

3 + 72 − 2

最後に足し算と引き算が行われて73となる。

タイトルとURLをコピーしました