後置インクリメント・デクリメント
CoddyのC++ジャーニー「基礎」セクションの一部 — レッスン 19/74。
前回のレッスンでは、インクリメント (++) 演算子とデクリメント (--) 演算子について学習しました。これらの演算子には、前置と後置の2つの形式があります。
どちらの形式を使用すべきかを知ることは、実際のプログラムにおいて重要です。例えば、ゲームのスコアを追跡したり、ループの反復回数をカウントしたり、項目のリストを順に進めたりする場合などです。
前置形式は変数の前に記述され(例:++x または --x)、後置形式は変数の後に記述されます(例:x++ または x--)。
これら2つの形式の違いはわずかですが、重要です:
- 前置形式:変数をインクリメント/デクリメントしてから、新しい値を返します。
- 後置形式:変数の現在の値を返してから、インクリメント/デクリメントします。
違いを説明するための例を次に示します:
int x = 5;
int y = x++;
// y = 5, x = 6 (後置)
int a = 5;
int b = ++a;
// b = 6, a = 6 (前置)最初のケースでは、y に x の元の値(5)が代入され、その後 x は 6 にインクリメントされます。2番目のケースでは、a が最初にインクリメントされ、その後、その新しい値(6)が b に代入されます。
デクリメント演算子についても同じ論理が当てはまります:
int x = 5;
int y = x--;
// y = 5, x = 4 (後置)
int a = 5;
int b = --a;
// b = 4, a = 4 (前置)チャレンジ
初心者x、y、および z の初期化が含まれたコードが与えられています。(これらの行は削除しないでください!)
あなたのタスクは、インクリメント/デクリメント演算子を使用して、以下の順序で操作を実行することです:
- 後置インクリメント演算子を使用して、
xの現在の値をaに代入し、その後にxをインクリメントします。 - 前置デクリメント演算子を使用して、
yをデクリメントし、その新しい値をbに代入します。 - 後置デクリメント演算子を使用して、
zの現在の値をcに代入し、その後にzをデクリメントします。
これらの操作を実行した後、a、b、c、x、y、および z の値を以下の形式でコンソールに出力してください:
a: [value of a]
b: [value of b]
c: [value of c]
x: [value of x]
y: [value of y]
z: [value of z]チートシート
インクリメント (++) およびデクリメント (--) 演算子には2つの形式があります:
- 前置形式 (
++x,--x): 最初に変数をインクリメント/デクリメントし、その後に新しい値を返します - 後置形式 (
x++,x--): 最初に現在の値を返し、その後に変数をインクリメント/デクリメントします
例:
int x = 5;
int y = x++; // y = 5, x = 6 (後置)
int a = 5;
int b = ++a; // b = 6, a = 6 (前置)
int x = 5;
int y = x--; // y = 5, x = 4 (後置)
int a = 5;
int b = --a; // b = 4, a = 4 (前置)自分で試してみよう
#include <iostream>
int main() {
int x = 10;
int y = 20;
int z = 30;
int a, b, c;
// 以下にコードを入力してください
// 以下の行は変更しないでください
std::cout << "a: " << a << std::endl;
std::cout << "b: " << b << std::endl;
std::cout << "c: " << c << std::endl;
std::cout << "x: " << x << std::endl;
std::cout << "y: " << y << std::endl;
std::cout << "z: " << z << std::endl;
return 0;
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。