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 になっているため、その後の a と b の出力もすべて 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 に増加します。したがって、次に出力される a と b の値はどちらも 11 となります。
まとめ:前置演算子と後置演算子の違い比較表
| 種類 | 記述方法 | 動作の順序 |
|---|---|---|
| 前置演算子 | ++a / --a | 値を増減させてから返す |
| 後置演算子 | a++ / a-- | 値を返してから増減させる |
演算子を単独で使用する場合は、前置でも後置でも最終的な結果は同じです。しかし、式の中で他の処理と組み合わせて使う場合には、評価の順序が実行結果に大きな影響を与えるため、用途に応じて正しく使い分けることが重要です。
-
Pythonの「==」と「is」演算子の違いをわかりやすく解説
「==」と「is」の基本的な違い Pythonには、オブジェクトを比較するための方法として「==」演算子と「is」演算子の2つがあります。一見すると似たような働きをするように見えますが、この2つはまったく異なる目的を持っています。 「==」(等価演算子)は、2つの変数の値が等しいかどうかを比較します。一方、「is」(同一性演算子)は、2つの変数が同じオブジェクト(同じメモリ上の場所)を参照しているかどうかを確認します。 サンプルコード 以下のコードは、「==」と「is」の動作の違いを示すシンプルな例です。ここでは空のリストを扱っています。list1とlist2はそれぞれ独立した別々の空のリスト
-
Pythonの「=」と「==」の違いとは?代入と比較の使い分けを徹底解説
Pythonにおける「=」と「==」の基本的な違いPythonでは「=」と「==」はまったく異なる役割を持つ記号です。初心者が混同しやすいポイントですが、それぞれの意味を正しく理解しておくことが重要です。「=」は代入演算子Pythonにおいて「=」記号は代入演算子として定義されています。左辺には1つの変数を、右辺には式を置く必要があり、右辺の式が評価された結果の値が、左辺の変数に格納されます。つまり、式と変数名は入れ替えて使うことはできません。>>> a=10 >>> b=20 >>> c=a+b >>> a,b,c (1