練習 - 遞增和遞減值

已完成

您將在此課程模組中了解的最後一項基本作業,是如何使用符號組合的特殊運算符來遞增和遞減值。

遞增和遞減

您經常需要遞增和/或遞減值,特別是當您撰寫與數據結構互動的循環邏輯或程序代碼時。

運算子 += 會將運算子右邊的值新增並指派給運算子左邊的值。 因此,下列代碼段中的第二行和第三行相同:

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

運算子會將 ++ 變數的值遞增 1。 因此,下列代碼段中的第二行和第三行相同:

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
    

備註

在「第二個遞增」中,您使用了 value += 1;。 不過,您可以使用任何常值 int (或變數)來遞增該數量。 「第二次遞減」也是如此: 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++}");

這一行有兩個步驟:

  1. 擷取變數 value 的目前值,並在字串插補作業中使用該值。
  2. 將值遞增。

下一行程式代碼會確認值實際上是遞增的。

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

相反地,請考慮最後一行程序代碼:

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

在這裡,會切換作業順序,因為 ++ 運算子會放在作數 value之前。

  1. 將值遞增。
  2. 取得變數 value 的遞增後新值,並於字串操作中使用。

雖然並非絕對必要,但您已在表達式 (++value) 周圍新增括弧,以改善可讀性。 有這麼多 + 運算子彼此相連,可能會使其他開發人員誤解。 這樣的風格選擇是主觀的。 不過,由於您將撰寫程式代碼一次,但讀取程式代碼多次,因此您應該優先設定可讀性優先順序。

回顧

以下是到目前為止您學習到關於 C# 中的數學運算知識:

  • 使用 、+=、、 -=*=++--複合指派運算符來執行遞增或遞減等數學運算,然後將結果指派給原始變數。
  • 遞增和遞減運算符會根據運算符是在操作數之前或之後而有不同的執行方式。