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

C#の前置演算子と後置演算子の違いとは?++と--の動作を実例で解説

はじめに

C#には、変数の値を1つ増やす「インクリメント演算子(++)」と、1つ減らす「デクリメント演算子(--)」があります。これらの演算子は、変数の前につけるか後につけるかによって動作が異なり、それぞれ「前置演算子(プレフィックス演算子)」「後置演算子(ポストフィックス演算子)」と呼ばれます。本記事では、両者の違いをサンプルコードと実行結果をもとにわかりやすく解説します。

前置演算子(プレフィックス演算子)とは

前置演算子は、演算子を変数のに記述します。この場合、変数の値が先に1増加(または減少)し、その後に新しい値が返されるのが特徴です。デクリメント演算子の場合も同様に、値を1減らしてから結果を返します。

++a;

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

サンプルコード

using System;
class Program {
    static void Main() {

        int a, b;
        a = 50;
        Console.WriteLine(++a);

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

実行結果

51
51
51

実行結果を見ると、Console.WriteLine(++a) の時点ですでに a は 51 になっているため、その後の ab の出力もすべて 51 となっています。これは、前置演算子が「値を返す前にインクリメントを実行する」ためです。

後置演算子(ポストフィックス演算子)とは

後置演算子は、演算子を変数のに記述します。この場合、現在の値が先に返され、その後に値が1増加(または減少)します。デクリメント演算子についても同様の動作になります。

a++;

以下は、後置演算子の使い方を示すサンプルコードです。

サンプルコード

using System;
class Program {
    static void Main() {

        int a, b;
        a = 10;
        Console.WriteLine(a++);

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

実行結果

10
11
11

この例では、Console.WriteLine(a++) の時点ではまだ a が 10 のままなので「10」が出力され、その直後に a が 11 に増加します。したがって、次に出力される ab の値はどちらも 11 となります。

まとめ:前置演算子と後置演算子の違い比較表

種類記述方法動作の順序
前置演算子++a / --a値を増減させてから返す
後置演算子a++ / a--値を返してから増減させる

演算子を単独で使用する場合は、前置でも後置でも最終的な結果は同じです。しかし、式の中で他の処理と組み合わせて使う場合には、評価の順序が実行結果に大きな影響を与えるため、用途に応じて正しく使い分けることが重要です。

  1. Pythonの「==」と「is」演算子の違いをわかりやすく解説

    「==」と「is」の基本的な違い Pythonには、オブジェクトを比較するための方法として「==」演算子と「is」演算子の2つがあります。一見すると似たような働きをするように見えますが、この2つはまったく異なる目的を持っています。 「==」(等価演算子)は、2つの変数の値が等しいかどうかを比較します。一方、「is」(同一性演算子)は、2つの変数が同じオブジェクト(同じメモリ上の場所)を参照しているかどうかを確認します。 サンプルコード 以下のコードは、「==」と「is」の動作の違いを示すシンプルな例です。ここでは空のリストを扱っています。list1とlist2はそれぞれ独立した別々の空のリスト

  2. Pythonの「=」と「==」の違いとは?代入と比較の使い分けを徹底解説

    Pythonにおける「=」と「==」の基本的な違いPythonでは「=」と「==」はまったく異なる役割を持つ記号です。初心者が混同しやすいポイントですが、それぞれの意味を正しく理解しておくことが重要です。「=」は代入演算子Pythonにおいて「=」記号は代入演算子として定義されています。左辺には1つの変数を、右辺には式を置く必要があり、右辺の式が評価された結果の値が、左辺の変数に格納されます。つまり、式と変数名は入れ替えて使うことはできません。>>> a=10 >>> b=20 >>> c=a+b >>> a,b,c (1