算術・文字列結合演算子

目次
  • 解説
  • 1. 算術演算子
  • 2. 計算の優先順位
  • 3. 文字列結合演算子
問題に挑戦!
進捗を変更する




解説

1. 算術演算子


算術演算子通常の計算を行うための演算子です。足し算・引き算は学校で習った計算記号と同じですが、掛け算・割り算は異なります。また、割り算の余りを結果として受け取る特殊な演算子も追加されています。

算術演算子用例呼び方・処理内容
+A + B加算演算子(かさん)、プラス
AにBを足し算した結果を返す
-A - B減算演算子(げんさん)、マイナス
AからBを引き算した結果を返す
*A * B乗算演算子(じょうさん)、アスタリスク
AとBを掛け算した結果を返す
/A / B除算演算子(じょさん)、スラッシュ
AからBを割り算した結果を返す
%A % B剰余演算子(じょうよ)、パーセント
AからBを割り算した余りを返す

2. 計算の優先順位


算術演算子優先順位は通常の数式と同じで、下表の順番で計算を実行します。

優先順位式の部位概要
1丸括弧()」の中身丸括弧の中身は最優先されます。
複数ある場合は左から、入れ子になっている場合は
最も深い階層から順番に計算されます。
2乗算演算子*
除算演算子/
剰余演算子%
これらをまとめて乗法演算子と呼び、
加法演算子よりも先に計算されます。
複数ある場合は左から順番に計算されます。
3加算演算子+
減算演算子-
これらをまとめて加法演算子と呼び、
乗法演算子よりも後に計算されます。
複数ある場合は左から順番に計算されます。

いくつかの計算式で優先順位を確認しておきましょう。

    static void practiceOperator01() {
        int result = 5 + 4 - 3 * 2 / 1; // ((5 + 4) - ((3 * 2) / 1)) 
        Logger.out(result);
        result = 5 + (4 - 3) * 2 / 1;   // (5 + (((4 - 3) * 2) / 1))
        Logger.out(result);
    }
[2020/12/31 12:34:56.789] 3
[2020/12/31 12:34:56.789] 7

3. 文字列結合演算子


文字列結合演算子文字列の結合を行うための演算子です。記号は加算演算子と同じです。

文字列結合演算子用例呼び方・処理内容
+A + B文字列結合演算子、プラス
文字列AとBを結合した文字列を返す

文字列結合演算子優先順位は加法演算子と同じです。そのため、次のサンプルコードのように文字列型と整数型を混在させた場合、順番によってプラス記号で行われる処理が変わってしまうことに十分注意する必要があります。

    static void practiceOperator02() {
        String result = "";
        result = 1 + 2 + 3 + "円";
        Logger.out(result);
        result = "合計:" + 1 + 2 + 3;
        Logger.out(result);
        result = "合計:" + 1 + 2 + 3 + "円";
        Logger.out(result);
        result = "合計:" + (1 + 2 + 3) + "円";
        Logger.out(result);
        result = "合計:" + (1 + 2 + 3) * 100 + "円";
        Logger.out(result);
        result = "合計:" + 1 + 2 + 3 * 100 + "円";
        Logger.out(result);
    }
[2020/12/31 12:34:56.789] 6円 // 左から整数の加算が終わった後で文字列結合
[2020/12/31 12:34:56.789] 合計:123 // 一番左が文字列だとすべて文字列結合
[2020/12/31 12:34:56.789] 合計:123円 // 「円」が付いただけ
[2020/12/31 12:34:56.789] 合計:6円 // 丸括弧内の整数計算が優先された
[2020/12/31 12:34:56.789] 合計:600円 // 丸括弧の次に掛け算が優先された
[2020/12/31 12:34:56.789] 合計:12300円 // 掛け算のみが優先された

問題

確認問題


確認問題1

この中で変数aに代入される文字列が「5円チョコ5個で25円」とならないものはどれか?