この記事では、当社の新人エンジニア研修の参考にC#を解説します。

なぜ、演算子が重要なのか、その理由

この記事では、弊社の新人エンジニア研修の参考にC#を解説します。

前回は変数とデータ型について解説しました。今回は演算子について説明します。コンピュータの語源である「一緒に計算してくれる人」に由来するように、演算はプログラムの本質的な役割といえるでしょう。

C#には様々な演算子がありますが、今回は以下の2種類を重点的に解説します。

  • 算術演算子
  • キャスト演算子

その他の演算子については、次回の条件分岐で解説します。


1. 算術演算子

四則演算(+-×÷)などを行う演算子を算術演算子といいます。C#で足し算を行う例を見てみましょう。

using System;

class Example01
{
    static void Main(string[] args)
    {
        Console.WriteLine(5 + 2);
    }
}

結果:
7 と表示されます。

ここで使用した「+」記号は演算子(operator)と呼ばれます。一方、52 はオペランド(operand)と呼ばれます。また、「5 + 2」は式(expression)といい、文末に「;」を付けることでこれが文(statement)となります。

C#の算術演算子は以下の通りです。

算術演算子演算内容式の例結果(値)
+足し算5 + 27
-引き算5 - 23
*掛け算5 * 210
/割り算5 / 22(整数同士の場合)
%剰余(余り)5 % 21

重要な注意点

  • 5 / 2 の結果が 2.5 ではなく 2 になるのは、整数型同士の演算結果も整数型になるためです。
  • 優先順位: 掛け算、割り算、剰余は、足し算や引き算より優先して計算されます。

練習問題

① 以下のコードの実行結果は何ですか?

Console.WriteLine(1 + 5 % 2);

② 括弧を使って計算の優先順位を変えてみましょう。以下のコードの結果は何ですか?

Console.WriteLine((1 + 5) % 2);

2. 変数を含む式

式には変数を含めることもできます。次のプログラムでは、値をインクリメント(1増加)しながら順次出力します。

using System;

class Example02
{
    static void Main(string[] args)
    {
        int i = 1;
        int j = i + 1;
        Console.WriteLine(j); // 2

        j = j + 1;
        Console.WriteLine(j); // 3

        Console.WriteLine(j += 1); // 4(複合代入演算子の例)

        Console.WriteLine(++j); // 5(前置インクリメント)

        Console.WriteLine(j++); // 5(後置インクリメント)

        Console.WriteLine(j);   // 6
    }
}

重要なポイント

  • 複合代入演算子
    j += 1j = j + 1 の短縮形です。他の演算も以下のように短縮できます。通常の書き方
通常の書き方複合代入演算子結果 (number = 2 の場合)
number = number - 1;number -= 1;1
number = number * 3;number *= 3;6

3. 型と代入の制限

変数の型が一致しない場合の代入について説明します。

例: 以下のコードは、int 型を double 型に代入する場合です。

double d = 1; 
Console.WriteLine(d); // 1.0

これはエラーになりません。C#では、「大きな型」への変換は暗黙的に行われます。これを暗黙的な型変換といいます。

一方、「小さな型」に代入する場合はエラーになります。

int i = (int)3.14;
Console.WriteLine(i); // 3

このように、明示的にキャスト(型変換)する必要があります。


4. 型変換の注意点

異なる型の演算結果は、最も大きい型に統一されます。

int i = 1;
double d = 3.1;
Console.WriteLine(i + d); // 4.1

また、整数同士の割り算では結果が整数になります。もし小数点以下を表示したい場合は、明示的にキャストを行います。

Console.WriteLine(5 / (double)2); // 2.5


5. ArithmeticException(算術例外)

以下のようなコードでは、0で割ると例外が発生します。

try
{
    Console.WriteLine(5 / 0);
}
catch (DivideByZeroException e)
{
    Console.WriteLine("例外発生: " + e.Message);
}


6. 文字列の結合における「+」演算子

文字列を結合するには + を使用します。

string str1 = "Hello";
string str2 = " World";
Console.WriteLine(str1 + str2); // Hello World

文字列と数値を混在させる場合、以下のような挙動になります。

Console.WriteLine("1 + 2 = " + 1 + 2); // 1 + 2 = 12
Console.WriteLine(1 + 2 + " は 1 + 2 の答えです"); // 3 は 1 + 2 の答えです

これは、算術演算子が左結合であるためです。最初に文字列が出てきた場合、以降はすべて文字列として扱われます。


<まとめ:隣の人に正しく説明できたらチェックを付けましょう>

□算術演算子は +-*/% の5種類があります。

□代入演算子 = は「等しい」ではなく「代入」を意味します。

□暗黙の型変換は「小さな型」から「大きな型」への変換で行われます。

□文字列と算術演算が混在する場合は、処理順序に注意が必要です。

これらの基礎をしっかり押さえておくことで、C#プログラミングの理解が深まります。

まとめができたら、アウトプットとして演習問題にチャレンジしましょう。

最後までお読みいただきありがとうございます。