跳轉到內容

程式設計基礎/增量和減量運算子

來自華夏公益教科書,開放的書籍,開放的世界

增量和減量運算子是一元運算子,分別對其運算元加或減 1。它們通常在指令式程式設計語言中實現。[1]

增量或減量的概念是對通常用作標誌的變數加或減 1。例如,使用名為 counter 的變數

增加計數器

這個概念是

計數器被分配給計數器 + 1

也就是說,你獲取計數器的現有值並加 1,然後將答案儲存回變數計數器。許多程式語言允許它們的增量和減量運算子只用於整數資料型別。程式設計師有時會使用 inc 和 dec 分別作為增量和減量的縮寫。

運算子符號和/或名稱因不同的程式語言而異。幾種程式語言支援增量和減量運算子

運算子 意義
++ 增量,兩個加號
-- 減量,兩個減號

程式碼示例

[編輯 | 編輯原始碼]

基本概念

[編輯 | 編輯原始碼]

在 C++、C#、Java 和 JavaScript 程式語言中,增量和減量運算子通常以這種簡單通用的方式使用。增量運算子用兩個連續的加號表示。例子

計數器 = 計數器 + 1;

計數器 += 1;

計數器++;

++計數器;

作為語句,這四個例子都做同樣的事情。它們將 1 加到儲存在計數器中的任何值。減量運算子用兩個連續的減號表示。它們將從正在遞減的變數的值中減去 1。增量和減量的優先順序取決於運算子是附加在運算元的右側(字尾)還是運算元的左側(字首)。請注意,字尾和字首的優先順序不同。

字尾增量

[編輯 | 編輯原始碼]

字尾增量表示使用我的現有值,然後在你完成其他運算子時;增加我。一個例子

int oldest = 44;
age = oldest++;

oldest 變數的第一次使用是 Rvalue 上下文,其中現有值 44 被提取或獲取,然後分配給變數 age;然後變數 oldest 被增加,其值從 44 更改為 45。這似乎違反了優先順序,因為增量比分配具有更高的優先順序。但這正是字尾增量的工作方式。

字首增量

[編輯 | 編輯原始碼]

字首增量表示立即增加我,並在任何計算中使用我的新值。一個例子

int oldest = 44;
age = ++oldest;

變數 oldest 被增加,其新值從 44 更改為 45;然後新值被分配給 age。

在後綴中,age 被分配為 44,在字首中,age 被分配為 45。記住區別的一種方法是將字尾視為禮貌(使用我的現有值,並在其他運算子完成後返回增加我),而字首具有自我意識(我很重要,所以先增加我,並使用我的新值進行其餘的評估)。

允許的資料型別

[編輯 | 編輯原始碼]

在某些程式語言中,增量和減量只能用於整數資料型別。其他語言將其擴充套件到所有整數族,也擴充套件到浮點數族(float 和 double)。將 3.87 增量將使值更改為 4.87。將“C”減量將使值更改為“B”。記住 ASCII 字元值實際上是 1 位元組無符號整數(域從 0 到 255)。

使用增量或減量評估以下專案

  1. 真或假:x = x +1 和 x+=1 和 x++ 都完成了增量?
  2. 給定:int y = 19;和 int z;在 z = y–; 之後,y 和 z 將具有什麼值?
  3. 給定:double x = 7.77;和 int y;在 y = ++x; 之後,x 和 y 將具有什麼值?
  4. 這樣可以嗎?為什麼或為什麼不?6 * ++(age -3)

關鍵詞

[編輯 | 編輯原始碼]
減量
從變數的值中減去 1。
增量
將 1 加到變數的值。
字尾
將增量或減量運算子放置在運算元的右側。
字首
將增量或減量運算子放置在運算元的左側。

參考文獻

[編輯 | 編輯原始碼]
華夏公益教科書