Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

Operator Kenaikan dan Penurunan Master C:Penggunaan &Praktik Terbaik

C - Operator Kenaikan dan Penurunan

Operator kenaikan (++) menambah nilai variabel sebesar 1, sedangkan operator penurunan (--) mengurangi nilainya.

Operator kenaikan dan penurunan sering digunakan dalam konstruksi loop terhitung di C (dengan loop for). Mereka juga memiliki aplikasinya dalam traversal array dan aritmatika pointer.

Operator ++ dan -- bersifat unary dan dapat digunakan sebagai prefiks atau posfix pada suatu variabel.

Contoh Operator Kenaikan dan Penurunan

Contoh berikut berisi beberapa pernyataan yang menunjukkan penggunaan operator kenaikan dan penurunan dengan variasi berbeda −

#include <stdio.h>
int main() {
 int a = 5, b = 5, c = 5, d = 5;
 
 a++; // postfix increment
 ++b; // prefix increment
 c--; // postfix decrement
 --d; // prefix decrement
 printf("a = %d\n", a);
 printf("b = %d\n", b);
 printf("c = %d\n", c);
 printf("d = %d\n", d);
 return 0;
}

Keluaran

Saat Anda menjalankan kode ini, ini akan menghasilkan keluaran berikut −

a = 6
b = 6
c = 4
d = 4

Contoh Penjelasan

Dengan kata lain, "a++" memiliki efek yang sama dengan "++a", karena kedua ekspresi tersebut menaikkan nilai variabel "a" sebesar 1. Demikian pula, "a--" memiliki efek yang sama dengan "--a".

Ekspresi "a++;" dapat dianggap setara dengan pernyataan "a =a + 1;". Di sini, ekspresi di sebelah kanan menambahkan 1 ke "a" dan hasilnya dikembalikan ke 1, sehingga nilai "a" bertambah 1.

Demikian pula, "b--;" setara dengan "b =b 1;".

Jenis Operator Kenaikan

Ada dua jenis operator kenaikan – pra kenaikan dan peningkatan posting .

Operator Kenaikan Pra (Awalan)

Dalam sebuah ekspresi, operator pra-kenaikan menaikkan nilai variabel sebesar 1 sebelum nilai variabel digunakan.

Sintaks

++variable_name;

Contoh

Pada contoh berikut, kita menggunakan operator pra-kenaikan, dimana nilai "x" akan ditambah sebesar 1, dan kemudian nilai yang ditingkatkan akan digunakan dalam ekspresi.

#include <stdio.h>
int main() {
 int x = 10;
 int y = 10 + ++x;
 printf("x = %d, y = %d\n", x, y);
 return 0;
}

Saat Anda menjalankan kode ini, ini akan menghasilkan keluaran berikut −

x = 11, y = 21

Operator Kenaikan Post (Postfix)

Dalam sebuah ekspresi, operator pasca kenaikan meningkatkan nilai variabel sebesar 1 setelah penggunaan nilai variabel.

Sintaks

variable_name++;

Contoh

Pada contoh berikut, kita menggunakan operator pasca kenaikan, dimana nilai "x" akan digunakan dalam ekspresi dan kemudian akan ditingkatkan sebesar 1.

#include <stdio.h>
int main() {
 int x = 10;
 int y = 10 + x++;
 printf("x = %d, y = %d\n", x, y);
 return 0;
}

Saat Anda menjalankan kode ini, ini akan menghasilkan keluaran berikut −

x = 11, y = 20

Jenis Operator Penurunan

Ada dua jenis operator penurunan – pra pengurangan dan penurunan pasca .

Operator pengurangan Pra (Awalan)

Dalam sebuah ekspresi, operator pra-pengurangan menurunkan nilai variabel sebesar 1 sebelum nilai variabel digunakan.

Sintaks

--variable_name;

Contoh

Dalam contoh berikut, kita menggunakan operator pra-pengurangan, di mana nilai "x" akan dikurangi sebesar 1, dan kemudian nilai yang diturunkan tersebut akan digunakan dalam ekspresi.

#include <stdio.h>
int main() {
 int x = 10;
 int y = 10 + --x;
 printf("x = %d, y = %d\n", x, y);
 return 0;
}

Saat Anda menjalankan kode ini, ini akan menghasilkan keluaran berikut −

x = 9, y = 19

Operator Pengurangan Post (Postfix)

Dalam sebuah ekspresi, operator pasca-pengurangan menurunkan nilai variabel sebesar 1 setelah penggunaan nilai variabel.

Sintaks

variable_name--;

Contoh

Pada contoh berikut, kita menggunakan operator pasca-pengurangan, dimana nilai "x" akan digunakan dalam ekspresi dan kemudian akan dikurangi sebesar 1.

#include <stdio.h>
int main() {
 int x = 10;
 int y = 10 + x--;
 printf("x = %d, y = %d\n", x, y);
 return 0;
}

Saat Anda menjalankan kode ini, ini akan menghasilkan keluaran berikut −

x = 9, y = 20

Contoh Lain Operator Kenaikan dan Penurunan

Contoh 1

Contoh berikut menyoroti penggunaan kenaikan/pengurangan awalan/postfix −

#include <stdio.h>
int main(){
 char a = 'a', b = 'M';
 int x = 5, y = 23;
 printf("a: %c b: %c\n", a, b);
 
 a++;
 printf("postfix increment a: %c\n", a);
 
 ++b;
 printf("prefix increment b: %c\n", b);
 printf("x: %d y: %d\n", x, y);
 
 x--;
 printf("postfix decrement x : %d\n", x);
 
 --y;
 printf("prefix decrement y : %d\n", y);
 return 0;
}

Keluaran

Saat Anda menjalankan kode ini, ini akan menghasilkan keluaran berikut −

a: a b: M
postfix increment a: b
prefix increment b: N
x: 5 y: 23
postfix decrement x: 4
prefix decrement y: 22

Contoh di atas menunjukkan bahwa operator awalan dan postfix memiliki efek yang sama terhadap nilai variabel operan. Namun, ketika operator "++" atau "--" ini muncul bersama operator lain dalam sebuah ekspresi, perilakunya berbeda.

Contoh 2

Pada kode berikut, nilai awal variabel "a" dan "b" sama, tetapi fungsi printf() menampilkan nilai yang berbeda −

#include <stdio.h>
int main(){
 int x = 5, y = 5;
 printf("x: %d y: %d\n", x,y);
 printf("postfix increment x: %d\n", x++);
 printf("prefix increment y: %d\n", ++y);
 return 0;
}

Keluaran

Jalankan kode dan periksa hasilnya −

x: 5 y: 5
postfix increment x: 5
prefix increment y: 6

Dalam kasus pertama, fungsi printf() mencetak nilai "x" dan kemudian menambah nilainya. Dalam kasus kedua, operator kenaikan dijalankan terlebih dahulu, fungsi printf() menggunakan nilai yang bertambah untuk pencetakan.

Operator Didahulukan dari Operator Kenaikan dan Penurunan

Ada sejumlah operator di C. Ketika beberapa operator digunakan dalam sebuah ekspresi, operator tersebut dieksekusi sesuai urutan prioritasnya. Operator kenaikan dan penurunan berperilaku berbeda bila digunakan bersama dengan operator lain.

Jika suatu ekspresi terdiri dari operator kenaikan atau penurunan bersama dengan operator lain, operasi kenaikan dan penurunan dilakukan terlebih dahulu. Operator kenaikan dan penurunan postfix memiliki prioritas lebih tinggi dibandingkan operator kenaikan dan penurunan awalan.

Baca juga: Prioritas Operator di C

Contoh 1

Lihatlah contoh berikut −

#include <stdio.h>
int main(){
 int x = 5, z;
 printf("x: %d \n", x);
 z = x++;
 printf("x: %d z: %d\n", x, z);
 return 0;
}

Keluaran

Jalankan kode dan periksa hasilnya −

x: 5 
x: 6 z: 5

Karena "x++" menambah nilai "x" menjadi 6, Anda juga mengharapkan "z" menjadi 6. Namun, hasilnya menunjukkan "z" sebagai 5. Hal ini karena operator penugasan memiliki prioritas lebih tinggi dibandingkan operator kenaikan postfix. Oleh karena itu, nilai "x" yang ada ditetapkan ke "z", sebelum menambahkan "x".

Contoh 2

Lihat contoh lain di bawah −

#include <stdio.h>
int main(){
 int x = 5, y = 5, z;
 printf("x: %d y: %d\n", x,y);
 z = ++y;
 printf("y: %d z: %d\n", y ,z);
 return 0;
}

Keluaran

Saat Anda menjalankan kode ini, ini akan menghasilkan keluaran berikut −

y: 5
y: 6 z: 6

Hasilnya mungkin membingungkan, karena nilai "y" dan "z" sekarang adalah 6. Alasannya adalah bahwa operator kenaikan awalan memiliki prioritas lebih tinggi daripada operator penugasan. Oleh karena itu, "y" bertambah terlebih dahulu, lalu nilai barunya ditetapkan ke "z".

Asosiasi operator juga memainkan peranan penting. Untuk operator kenaikan dan penurunan, asosiatifnya dari kiri ke kanan. Oleh karena itu, jika ada beberapa operator kenaikan atau penurunan dalam satu ekspresi, operator paling kiri akan dieksekusi terlebih dahulu, kemudian bergerak ke kanan.

Contoh 3

Dalam contoh ini, ekspresi penugasan berisi operator prefiks dan postfix.

#include <stdio.h>
int main(){
 int x = 5, y = 5, z;
 z = x++ + ++y;
 printf("x: %d y: %d z: %d\n", x,y,z);
 return 0;
}

Keluaran

Jalankan kode dan periksa hasilnya −

x: 6 y:6 z: 11

Dalam contoh ini, operasi pertama yang dilakukan adalah "y++" ("y" menjadi 6). Kedua, operator "+" menambahkan "x" (yaitu 5) dan "y", hasil yang ditetapkan ke "z" sebagai 11, lalu "x++" menambah "x" menjadi 6.

Menggunakan Operator Kenaikan di Loop

Di C, sintaks perulangan for yang paling umum digunakan adalah sebagai berikut −

for (init_val; final_val; increment) {
 statement(s);
}

Contoh

Badan perulangan dijalankan untuk semua nilai variabel antara nilai awal dan akhir, dan bertambah setiap putarannya.

#include <stdio.h>
int main(){
 int x;
 for (x = 1; x <= 5; x++){
 printf("x: %d\n", x);
 }
 
 return 0;
}

Keluaran

Saat Anda menjalankan kode ini, ini akan menghasilkan keluaran berikut −

x: 1
x: 2
x: 3
x: 4
x: 5

Bahasa C

  1. C# - Struktur Program
  2. Pemrograman Web C++
  3. C - File I/O
  4. Tutorial Kelas Abstrak C# dengan Contoh:Apa itu Abstraksi?
  5. 15 IDE C++ Terbaik:Editor Windows Gratis | Kompiler | 2021
  6. 15 Kursus Pemrograman C++ Terbaik Online (Des 2021)
  7. Penanganan File di C#:Operasi I/O [Contoh]
  8. C# - Polimorfisme
  9. C++ Warisan Publik, Dilindungi, dan Pribadi
  10. Tumpuk di C++ STL dengan Contoh