遞增運算子(Increment Operators)可以將變數的值增加 1
或減少 1
,其使用方式與 C 語言中的遞增運算子相同,以下是 Octave 中的遞增運算子:
++x
:將 x
的值加 1
,傳回增加後的數值。--x
:將 x
的值減 1
,傳回增加後的數值。x++
:將 x
的值加 1
,傳回增加前的數值。x--
:將 x
的值減 1
,傳回增加前的數值。++x
會先將變數 x
的值加 1
後,再取其新的值傳回,其作用完全等於 x = x + 1
。而 x++
則是將變數 x
的值加 1
後,傳回原本舊的數值;而 --x
與 x--
的差異也是類似。例如:
x = 1; y = ++x;
此時的 x
為 2
,而 y
為 2
,
x = 1; y = x++;
此時的 x
為 2
,而 y
為 1
。
遞增運算子與一個變數所組成的算式與一般的算式相同,可以用於任何其他算式可以使用的地方,例如判斷式之中:
a = b = 1; a++ > b
輸出為
ans = 0
當算式中包含多個運算子時,運算子優先權(operator precedence)會決定其運算的順序,例如乘法運算子 *
都優先順序就會比加法運算子 +
高,因此 a + b * c
的運算順序是先將 b
乘以 c
再加上 a
,也就是 a + (b * c)
。
使用者可以使用小括號更改預設的運算子優先權,此優先權亦可視為當使用者沒有使用括號時,預設的括號規則。當在使用一些不常見的運算子組合時,縱使依照預設的運算子優先權可以不需要括號,但一般還是建議加入小括號,因為不是每個閱讀程式的人都記得每個運算子的優先順序,有明確的括號可以避免不必要的錯誤發生。
一般當兩個運算子有相同的優先權時,在左邊的運算子會先執行。指定運算子(assignment operator)與指數運算子(exponentiation operator)與一般運算子不同,這兩種運算子會由最右邊的運算子開始執行,例如 a - b + c
其運算順序為 (a - b) + c
,而 a = b = c
的運算順序則為 a = (b = c)
。
運算子的優先權對於前置的一元運算子(prefix unary operators)是很重要的,例如:-x^2
的執行順序為 -(x^2)
,這是因為負號 -
的優先順序低於指數運算子 ^
。
以下是 Octave 中各種運算子的優先順序,依照由低而高的順序排列:
";"
、 ","
。"="
、 "+="
、 "-="
、 "*="
、 "/="
,這些運算子是由最右邊開始執行。"||"
、 "&&"
。"|"
、 "&"
。"<"
、 "<="
、 "=="
、 ">="
、 ">"
、 "!="
、 "~="
。":"
。"+"
、 "-"
。"*"
、 "/"
、 ""
、 "."
、 ".*"
、 "./"
。"'"
、 ".'"
。"+"
、 "-"
、 "++"
、 "--"
、 "!"
、 "~"
。"^"
、 "**"
、 ".^"
、 ".**"
。