Menambah atau mengurangi nilai variabel tepat satu angka adalah operasi yang paling sering kita tulis: nomor antrian naik, stok berkurang satu, dan penghitung loop berjalan. C# menyediakan dua operator khusus untuk pola ini: ++ (increment) dan -- (decrement).

Dua Bentuk: Prefix dan Postfix #

Masing-masing operator punya dua bentuk penempatan:

BentukNamaUrutan kerja
++xPrefix incrementNaikkan x terlebih dahulu, lalu pakai nilai baru
x++Postfix incrementPakai nilai lama terlebih dahulu, lalu naikkan x
--xPrefix decrementTurunkan x terlebih dahulu, lalu pakai nilai baru
x--Postfix decrementPakai nilai lama terlebih dahulu, lalu turunkan x

Kedua bentuk berakhir pada nilai akhir variabel yang sama; perbedaannya hanya terasa ketika hasil operator langsung dipakai dalam expression yang sama.

Contoh dan Bedah Baris #

csharp
int stok = 5;

Console.WriteLine(stok++);
Console.WriteLine(stok);
Console.WriteLine(++stok);
Console.WriteLine(stok--);
Console.WriteLine(stok);
Console.WriteLine(--stok);

Output yang Dihasilkan:

text
5
6
7
7
6
5

Mari kita telaah baris demi baris:

  1. Baris 1 (int stok = 5;): Variabel stok menyimpan nilai awal 5.
  2. Baris 3 (stok++): Bentuk postfix mengembalikan nilai lama 5 ke WriteLine, kemudian menaikkan stok menjadi 6.
  3. Baris 4 (stok): Nilai yang tercetak 6 mengonfirmasi kenaikan pada baris sebelumnya.
  4. Baris 5 (++stok): Bentuk prefix menaikkan stok menjadi 7 terlebih dahulu, lalu nilai baru 7 ikut dicetak.
  5. Baris 6 (stok--): Bentuk postfix mencetak nilai lama 7, kemudian menurunkan stok menjadi 6.
  6. Baris 8 (--stok): Bentuk prefix menurunkan stok menjadi 5 sebelum nilai 5 dicetak.

Kapan Perbedaan Prefix dan Postfix Berpengaruh #

Perbedaan keduanya hanya penting bila hasil operator langsung dipakai, misalnya di dalam Console.WriteLine(stok++) atau penugasan int lama = stok--;. Contoh berikut menangkap nilai lama sebelum decrement terjadi:

csharp
int hitung = 10;
int lama = hitung--;
Console.WriteLine(lama);
Console.WriteLine(hitung);

Output yang Dihasilkan:

text
10
9

Bentuk postfix menyalin nilai 10 ke variabel lama terlebih dahulu, kemudian menurunkan hitung menjadi 9. Bila kita menukarnya menjadi int lama = --hitung;, variabel lama akan menerima 9 dan hitung juga bernilai 9.

Bila statement hanya berisi hitung--; sendirian tanpa memakai hasilnya, kedua bentuk memberi hasil identik: nilai variabel turun satu. Bab control flow nanti memakai i++ sebagai pola bawaan penghitung loop for, dan pada konteks itu bentuk postfix adalah pilihan yang paling umum.