演習 - 値のインクリメントとデクリメント

完了

このモジュールで学習する最後の基本的な操作は、シンボルの組み合わせである特殊な演算子を使用して値をインクリメントおよびデクリメントする方法です。

インクリメントとデクリメント

多くの場合、特にデータ構造と対話するループ ロジックまたはコードを記述する場合は、値をインクリメントまたはデクリメントする必要があります。

+=演算子は、演算子の右側の値を演算子の左側の値に追加して割り当てます。 したがって、次のコード スニペットの 2 行目と 3 行目は同じです。

int value = 0;     // value is now 0.
value = value + 5; // value is now 5.
value += 5;        // value is now 10.

++演算子は、変数の値を 1 ずつインクリメントします。 したがって、次のコード スニペットの 2 行目と 3 行目は同じです。

int value = 0;     // value is now 0.
value = value + 1; // value is now 1.
value++;           // value is now 2.

減算、乗算などにも、これらの同じ手法を使用できます。 次の演習手順では、いくつかの点を強調します。

+=-=*=++--などの演算子は、変数に結果を代入するだけでなく、何らかの演算を複合的に行うため、複合代入演算子と呼ばれます。 +=演算子は、特に加算代入演算子と呼びます。

値をインクリメントおよびデクリメントするコードを記述する

  1. C# コード エディターで前に記述したすべてのコードを選択し、Delete または Backspace キーを押して削除します。

  2. C# コード エディターで次のコードを入力します。

    int value = 1;
    
    value = value + 1;
    Console.WriteLine("First increment: " + value);
    
    value += 1;
    Console.WriteLine("Second increment: " + value);
    
    value++;
    Console.WriteLine("Third increment: " + value);
    
    value = value - 1;
    Console.WriteLine("First decrement: " + value);
    
    value -= 1;
    Console.WriteLine("Second decrement: " + value);
    
    value--;
    Console.WriteLine("Third decrement: " + value);
    
  3. コードを実行します。 次の出力が表示されます。

    First increment: 2
    Second increment: 3
    Third increment: 4
    First decrement: 3
    Second decrement: 2
    Third decrement: 1
    

"2 番目の増分" では、 value += 1;を使用しました。 ただし、リテラル int 値 (または変数) を使用して、その量をインクリメントすることもできます。 同じことが、"2 番目のデクリメント" にも当てはまります: value -= 1;

インクリメント演算子とデクリメント演算子を配置する

インクリメント演算子とデクリメント演算子の両方に興味深い品質があります。位置に応じて、値を取得する前または後に操作を実行します。 つまり、 ++valueのように値の前に演算子を使用すると、値が取得される 前に インクリメントが発生します。 同様に、 value++ は値が取得された後に値をインクリメントします。

値の前後にインクリメント演算子を使用する

  1. 前の手順からコードを削除し、次のコードを C# コード エディターに入力します。

    int value = 1;
    value++;
    Console.WriteLine("First: " + value);
    Console.WriteLine($"Second: {value++}");
    Console.WriteLine("Third: " + value);
    Console.WriteLine("Fourth: " + (++value));
    
  2. コードを実行します。 次の出力が表示されます。

    First: 2
    Second: 2
    Third: 3
    Fourth: 4
    

次のコード行に注目してください。

Console.WriteLine($"Second: {value++}");

この行には 2 つの手順があります。

  1. 変数 value の現在の値を取得し、文字列補間操作で使用します。
  2. 値をインクリメントします。

次のコード行は、値が実際にインクリメントされたことを確認します。

Console.WriteLine("Third: " + value);

これに対し、コードの最後の行を考えてみましょう。

Console.WriteLine("Fourth: " + (++value));

ここでは、 ++ 演算子がオペランド valueの前に配置されるため、操作の順序が切り替えられます。

  1. 値をインクリメントします。
  2. 変数 value の新しい増分値を取得し、文字列操作で使用します。

厳密には必要ではありませんが、読みやすくするために、式 (++value) の周りにかっこを追加しました。 非常に多くの + 演算子が隣り合っているのを見ると、他の開発者が誤解を受ける可能性があるようです。 このようなスタイルの決定は主観的です。 ただし、コードは 1 回記述しても何度も読むので、読みやすさに優先順位を付ける必要があります。

まとめ

C# の数学演算についてこれまでに学習した内容を次に示します。

  • +=-=*=++--などの複合代入演算子を使用してインクリメントやデクリメントなどの数学的演算を実行し、結果を元の変数に代入します。
  • インクリメント演算子とデクリメント演算子の動作は、演算子がオペランドの前か後かによって異なります。