除了基本的數學運算,程式運算存在一種違背數學邏輯的運算式,這種運算式允許運算元本身經過加 1 或是減 1 的運算之後,再將結果指定給自已,如下式:

第一行的 intResult 變數儲存的值等於 10 ,第二行變數值改變了之後,再重新儲存指向自已。此種形式的運算被大量的運用在程式運算當中,遞增遞減運算子則專門用於此類型的運算操作,可進一步的簡化程式碼。另外,上述程式碼可以改寫如下:
C# 另外提供 ++ 以及 -- 兩個運算子,對指定數值的運算元進行一個單位值的運算,例如底下的運算式:
這兩種運算子另外有一種形式的運算模式,以 ++ 為例,如下式,運算子本身放置於運算元的前方:

從上面的圖示中,你應該可以很明顯的看出前置運算與後置運算的差異,無論如何, x變數最後的值都將會是加上 1 之後的結果。
以下利用一個範例,說明遞增遞減運算子以及前置後置算子的運算結果。
宣告兩個 int 型別變數 - intPre 與 intPost,用來儲存稍後針對 intX 變數執行的前置與後置運算結果,完成前置與後置運算,程式最將結果輸出於主控台。
intResult = 5 + intResult ;其中變數 intResult 加上一個數值等於5的常數之後,再將結果指定給自已,經過設值運算子的運算之後, intResult 所儲存的值為自已本身原先的值加上 5 ,如下式:

第一行的 intResult 變數儲存的值等於 10 ,第二行變數值改變了之後,再重新儲存指向自已。此種形式的運算被大量的運用在程式運算當中,遞增遞減運算子則專門用於此類型的運算操作,可進一步的簡化程式碼。另外,上述程式碼可以改寫如下:
intResult += 5 ;這段運算式計算所得的結果完全與上式相同,其中的 += 運算子由加法運算子以及設值運算子組合而成,同理,其他的算術運算子也可以進行相同的運算邏輯,這些運算子分別是 += 、 -= 、 *= 、 /= 以及 %= 等。
C# 另外提供 ++ 以及 -- 兩個運算子,對指定數值的運算元進行一個單位值的運算,例如底下的運算式:
x=10 ; x++ ;其中運算子 ++ 將變數 x 加上 1 ,因此當第二行執行完成之後, x 的值變成 11 ,同理,若是使用 -- 代替, 則會將指定的變數減 1 。
這兩種運算子另外有一種形式的運算模式,以 ++ 為例,如下式,運算子本身放置於運算元的前方:
++x此種類型的運算子稱之為前置運算子(prefix),而上面提到的類型則是後置運算子(postfix),其中最大的差別在於,使用前置運算子的運算式所得到的結果為變數運算之前的結果,而後置運算子所得到的結果則是變數值運算之後的值。

從上面的圖示中,你應該可以很明顯的看出前置運算與後置運算的差異,無論如何, x變數最後的值都將會是加上 1 之後的結果。
以下利用一個範例,說明遞增遞減運算子以及前置後置算子的運算結果。
class Program { static void Main(string[] args) { int intR; int intX; int intAdd; Console.WriteLine("請輸入整數值X :"); intR = int.Parse(Console.ReadLine()); Console.WriteLine("請輸入所要加總的數值:"); intAdd = int.Parse(Console.ReadLine()); intX = intR; intX = intX + intAdd; Console.WriteLine ("使用運算式\"intX = intX+intAdd\" 運算結果等於{0}", intX); intX = intR; intX += intAdd; Console.WriteLine ("使用運算式\"intX +=intAdd\" 運算結果等於{0}", intX); int intPre; int intPost; intX = intR; intPost = intX++; intX = intR; intPre = ++intX; Console.WriteLine ("使用運算式\"intX++\" 運算結果等於{0} ", intPre); Console.WriteLine ("使用運算式\"++intX\" 運算結果等於{0} ", intPost); Console.WriteLine ("使用運算式\"intX\" 運算結果等於{0} ", intX); Console.ReadLine(); } }一開始定義 intR 、 intX 以及 intAdd 三個變數,其中的 intR 與 intAdd 取得使用者於主控台輸入的數值,然後針對取得的 intR 內容值的 intX 與 intAdd 進行加總運算,並且於17 行輸出運算結果,接下來執行相同的動作,只是此次第 20 行改以 += 取代 + 運算子。
宣告兩個 int 型別變數 - intPre 與 intPost,用來儲存稍後針對 intX 變數執行的前置與後置運算結果,完成前置與後置運算,程式最將結果輸出於主控台。
請輸入整數值 X : 50 請輸入所要加總的數值 : 100 使用運算式 "intX = intX + intAdd" 運算結果等於 150 使用運算式 "intX += intAdd" 運算結果等於 150 使用運算式 "intX++" 運算結果等於 51 使用運算式 "++intX" 運算結果等於 50 使用運算式 "intX" 運算結果等於 51從範例輸出結果可以很明顯的看見 += 與 + 得到相同的結果,而前置與後置運算所輸出的值,與稍早課程的說明原理相印證。
沒有留言:
張貼留言