Skip to main content

4.3 遞增、遞減與複合指定運算子

遞增與遞減運算子

我們很常在迴圈裡用到 i = i+1 這樣的遞增敘述。

int i=1;

while(i<=10)
(
    cout << i << " ";
    i = i+1;  // 遞增 1
}
cout << endl;
1 2 3 4 5 6 7 8 9 10

這種情況可以使用 遞增(increment)運算子 ++ 來處理。

int i=1;

while(i<10)
(
    cout << i << " ";
    i++;  // 遞增 1
}
cout << endl;
1 2 3 4 5 6 7 8 9 10

i++ 就相當於 i=i+1。

同樣的 i=i-1; 可以用 遞減(decrement)運算子 -- 來處理。

int i=10;

while(i>0)
(
    cout << i << " ";
    i--;  // 遞減 1
}
cout << endl;
10 9 8 7 6 5 4 3 2 1

複合指定運算子

如果是增減 1 之外的數值,如 i = i+2,則可以用 複合指定(compound assignment)運算子。

int i=1;

while(i<10)
(
    cout << i << endl;
    i+=2;  // 遞增 2
}

i+=2 就相當於 i=i+2。

常用的複合指定運算子

運算子 範例 相當於 += i += 2 i = i+2 -= i -= 2 i = i-2 *= i *= 2 i = i*2 /= i /= 2 i = i/2 %= i %= 2 i = i%2

遞增、遞減運算子的評估時機

遞增運算子有兩種使用方式,如果我們要將 變數i 遞增 1。

    i++ ++i

    以下兩個程式的執行結果相同。

    使用 i++
    int i=1;
    
    while(i<10)
    (
        cout << i << " ";
        i++;  // 遞增 1
    }
    cout << endl;
    
    使用 ++i
    int i=1;
    
    while(i<10)
    (
        cout << i << " ";
        ++i;  // 也是遞增 1
    }
    cout << endl;