C++のインクリメント(++)とデクリメント(--)演算子の基礎と使い方
インクリメント演算子とデクリメント演算子とは
C++には、値を1だけ増減させるための便利な演算子が用意されています。インクリメント演算子「++」はオペランド(対象の値)に1を加え、デクリメント演算子「--」はオペランドから1を引きます。
つまり、以下の2つのコードは同じ意味になります。
x = x + 1; は x++; と同じ
同様に、次の2つも同じ意味です。
x = x - 1; は x--; と同じ
前置き(prefix)と後置き(postfix)の違い
インクリメント・デクリメント演算子には、オペランドの前に置く「前置き(prefix)」と、後ろに置く「後置き(postfix)」の2つの書き方があります。
x = x + 1; は ++x; とも書ける
ただし、これらの演算子を式の一部として使う場合、前置きと後置きでは動作に重要な違いが生じるため注意が必要です。
- 前置き(++i)の場合: i の値が先にインクリメントされ、式の値はインクリメント後の新しい値になります。つまり、「値を増やしてから代入する」動作です。
- 後置き(i++)の場合: i の値はインクリメントされますが、式の値はインクリメント前の元の値になります。つまり、「代入してから値を増やす」動作です。
サンプルコード
実際のコードを見て、動作を確認してみましょう。
#include<iostream>
using namespace std;
int main() {
int x = 3, y, z;
y = x++;
z = ++x;
cout << x << ", " << y << ", " << z;
return 0;
}
実行結果
このプログラムを実行すると、次の出力が得られます。
5, 3, 5
なぜこのような結果になるのか、処理の流れを詳しく見ていきましょう。
- まず、x を 3 で初期化します。
- y = x++ では、後置きのため、インクリメント前の x の値(3)が y に代入され、その後に x が 4 になります。
- z = ++x では、前置きのため、x が先に 5 にインクリメントされ、その値(5)が z に代入されます。
- 最後に、これらの値を出力します。
このように、前置きと後置きの違いを正しく理解しておくことは、意図しないバグを防ぐために非常に重要です。演算子を単独で使う場合は結果は変わりませんが、式の中で使う際には必ず動作の違いを意識するようにしましょう。
-
Pythonにインクリメント・デクリメント演算子はない?代わりの書き方を徹底解説
この記事では、Pythonにおけるインクリメント(増加)とデクリメント(減少)の実装方法について詳しく解説します。Pythonには「++」「--」演算子が存在しないC言語やJava、JavaScriptなどの多くのプログラミング言語には、値を1だけ増減させるための前置・後置インクリメント演算子(++)やデクリメント演算子(--)が用意されています。しかし、Pythonにはこれらの演算子は存在しません。これは「明示的であることが暗黙的であるよりも良い(Explicit is better than implicit)」というPythonの設計思想によるもので、コードの可読性を重視するためです。と
-
Pythonにインクリメント・デクリメント演算子はない?その理由と正しい使い方
Pythonにインクリメント・デクリメント演算子は存在しない Pythonには、C言語などでおなじみの単項インクリメント演算子(++)やデクリメント演算子(--)が用意されていません。代わりに、値を1つ増やす場合は a += 1 を、1つ減らす場合は a -= 1 を使用します。 a += 1 # 値を1増やす(インクリメント) a -= 1 # 値を1減らす(デクリメント) これはPythonの設計思想によるものです。「同じことを実現する方法は1つに絞る」というZen of Python(Pythonの禅)の原則に沿い、複数の記法をあえて許容していません。 基本的な使用例 >>