コンテンツへスキップ

レッスン3:④ 演算の順序


概要

このページでは、演算の順序について学習します。式の中に複数の演算子がある場合、優先順位の高い演算子から先に計算が実行されます。以下は、優先順位の高い順に演算子を整理した表です。

演算子名演算子
単項演算子+、-、++、‐‐(※)
乗算、除算、余り*、/、%
加算、減算+、-
小なり・大なり演算子<、<=、>、>=
等値・非等値演算子==、!=
※ 「‐」は全角で表記しているが、実際のプログラムでは半角「-」を使用すること

STEP1:プログラムを記述する

Lesson3_4.cs のプログラムを下記のように変更します。

namespace Lesson3
{
    public static class Lesson3_4
    {
        /// <summary>
        /// (1). 演算の順序
        /// </summary>
        public static void Text1()
        {
            Console.WriteLine("1 + 2 + 3 = {0}", 1 + 2 + 3);
            Console.WriteLine("1 * 2 + 3 = {0}", 1 * 2 + 3);
            Console.WriteLine("1 + 2 * 3 = {0}", 1 + 2 * 3);
            Console.WriteLine("true == 1 < 2 = {0}", true == 1 < 2);
            double x = 0.5;
            Console.WriteLine("1 < ++0.5 == true = {0}", 1 < ++x == true);
            x = 0.5;
            Console.WriteLine("1 < 0.5++ == true = {0}", 1 < x++ == true);
        }
    }
}

STEP2:動作を確認する

一つの式の中で複数の演算子を使っています。どのような結果になったかひとつずつ確認してみてください。

課題① – 1:カッコを使って演算の順序を変更する

C# では、カッコの中の式を優先して計算します。一般的な数式のルールと同じなので分かりやすいと思います。演算の順序が不明瞭だと思われる個所にカッコをつけて、順序を明確にするために使うケースもあります。それでは、次のコードを実行してみてください。

        /// <summary>
        /// 課題(1). 演算の順序を変更する(明確にする)
        /// </summary>
        public static void Kadai1()
        {
            Console.WriteLine("1 * (2 + 3) = {0}", 1 * (2 + 3));
            Console.WriteLine("1 + (2 * 3) = {0}", 1 + (2 * 3));
            Console.WriteLine("true == (1 < 2) = {0}", true == (1 < 2));
            double x = 0.5;
            Console.WriteLine("(1 < ++0.5) == true = {0}", (1 < ++x) == true);
            x = 0.5;
            Console.WriteLine("(1 < (0.5++)) == true = {0}", (1 < (x++)) == true);
        }

次に進む

レッスン3 では、演算子について学習しました。計算のためだけに使われるものではなく、ゲームを作る上でも重要になります。特に関係演算子については理解を深めておきましょう。次は、条件分岐について学習します。