Postfix dan Prefix increment
Iseng2 . . Beberapa teman yang programmer saya ajukan pertanyaan mencongak sedikit berikut ini . .
a=10
b=a++
berapakah nilai b ?Suatu pertanyaan dari potongan program yang sederhana .. dan kebanyakan dari mereka menjawab nilai b adalah 11. Cuman kang pengki saja yang menjawab 10.
Dan setelah dicoba hasilnya memang adalah 10. hidup pengki !!!
Kalau dilihat sekilas memang seharusnya nilai b adalah 11 .. secara a++ adalah sama dengan a=a+1.
Ini adalah masalah postfix dan prefix increment. .
Postfix increment, misal a++ adalah proses menambahkan nilai 1 pada variable a. . Penambahan nilai ini dilakukan SESUDAH nilai dari variable diambil dan dipakai dalam program.
Misal nya
b=a++
sama halnya dengan
b=a
a=a+1
(untuk kasus mencongak diatas, dimana a=10.. maka nilai b adalah 10)
Prefix increment, misal ++a adalah proses menambahkan nilai 1 pada variable a. . Penambahan nilai ini dilakukan SEBELUM nilai dari variable diambil dan dipakai dalam program
Misal nya
b=++a
sama halnya dengan
a=a+1
b=a
(dengan metode ini, maka nilai b adalah 11)
Demikian juga dengan prefix decrement (- -a) dan postfix decrement(a- -)
Jadi untuk Potongan program dibawah ini
int x=6;
int y=4;
a=++x // x=6+1 = 7 , a=x=7.
b=(y+3)*2 +x- - // (4+3)*2+7 = 21.
Memang benar adanya kalau nilai dari variable a adalah 7, sedangkan b adalah 21. .