C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のインクリメント(++)とデクリメント(--)演算子とは?前置・後置の違いを解説

C#には、数値を1つ増やしたり減らしたりするための専用の演算子が用意されています。それがインクリメント演算子(++)デクリメント演算子(--)です。それぞれ「前置」と「後置」の2種類があり、変数単体で使う場合は同じ動作をしますが、代入などと組み合わせると挙動が異なるため注意が必要です。

インクリメント演算子(++)

インクリメント演算子は、変数の値を1つ増やすための演算子です。次の2つの書き方があります。

  • 後置インクリメント(a++):現在の値を使った後に、値が1増えます。
  • 前置インクリメント(++a):値が1増えた後に、その新しい値が使われます。

以下は、両者の違いを確認できるサンプルコードです。

サンプルコード

using System;

class Demo {
    static void Main() {
        int a = 250;
        Console.WriteLine(a);

        a++;
        Console.WriteLine(a);

        ++a;
        Console.WriteLine(a);

        int b = 0;
        b = a++;
        Console.WriteLine(b);
        Console.WriteLine(a);

        b = ++a;
        Console.WriteLine(b);
        Console.WriteLine(a);
    }
}

実行結果

250
251
252
252
253
254
254

ポイントは b = a++; の部分です。後置の場合は「まず現在の値をbに代入し、その後でaが1増える」ため、bには252が入り、aは253になります。一方、b = ++a; の前置の場合は「先にaが1増えてから、その値がbに代入される」ため、bとaのどちらも254になります。

デクリメント演算子(--)

デクリメント演算子は、変数の値を1つ減らすための演算子です。インクリメントと同様に、次の2つの書き方ができます。

  • 後置デクリメント(a--):現在の値を使った後に、値が1減ります。
  • 前置デクリメント(--a):値が1減った後に、その新しい値が使われます。

以下は、デクリメント演算子の動作を示すサンプルコードです。

サンプルコード

using System;

class Demo {
    static void Main() {
        int a = 250;
        Console.WriteLine(a);

        a--;
        Console.WriteLine(a);

        --a;
        Console.WriteLine(a);

        int b = 0;
        b = a--;
        Console.WriteLine(b);
        Console.WriteLine(a);

        b = --a;
        Console.WriteLine(b);
        Console.WriteLine(a);
    }
}

実行結果

250
249
248
248
247
246
246

b = a--; では、減算前の値248がbに代入され、その後aが247になります。逆に b = --a; では、先にaが246に減り、その値がbに代入されるため、bもaも246となります。

まとめ

インクリメント(++)とデクリメント(--)は、値を1増減させる便利な演算子です。単独で使う限り前置・後置の違いはありませんが、代入式の中で使うと「代入と増減のどちらが先に行われるか」が変わる点が重要です。特にループ処理や条件式の中で使うことが多いため、前置と後置の違いはしっかり理解しておきましょう。

  1. C言語の演算子とパンクチュエータ(区切り子)とは?違いと一覧をわかりやすく解説

    演算子(Operator)とはC言語における演算子とは、1つまたは複数のオブジェクトに対して適用される操作を表すための記号です。主に式の中で意味を持ちますが、宣言の中でも使用されることがあります。一般的には、英数字以外の文字を組み合わせた短い記号列として表現されます。例えば、加算を表す「+」、等価比較を行う「==」、論理ANDを表す「&&」などが演算子に該当します。パンクチュエータ(Punctuator)とはパンクチュエータ(区切り子)とは、要素のリストを区切ったり、構文上の区切りを終了させたりするために使用される記号です。セミコロン「;」やカンマ「,」などが代表的な例です。C言語の演算子・パ

  2. C言語の演算子と式の種類を徹底解説!算術からビット演算まで

    C言語における演算子(オペレーター)とは、データに対して何らかの操作を行うための記号です。C言語の演算子は、その機能によって以下のように分類されます。算術演算子関係演算子論理演算子代入演算子インクリメント・デクリメント演算子ビット演算子条件演算子特殊演算子それぞれの演算子について、具体例とサンプルプログラムを交えながら詳しく見ていきましょう。1. 算術演算子算術演算子は、足し算や引き算などの数値計算を行うために使われます。演算子説明例a=20, b=10 の場合結果+加算(足し算)a+b20+1030-減算(引き算)a-b20-1010*乗算(掛け算)a*b20*10200/除算(割り算)a/