Isi kandungan:
- Pengendali binari
- Apa yang pertama, pendaraban atau penambahan? Atau ungkapan ini hanya dinilai dari kiri ke kanan? Rujuk kembali ke meja, yang memberitahu anda bahawa pendaraban mempunyai keutamaan 3, yang lebih tinggi dari tahap penambahan penambahan yang 4 (nilai lebih kecil mempunyai prioritas yang lebih tinggi). Oleh itu pendaraban berlaku dahulu:
Video: Fungsi Matematika di C++ - Ekspresi #06 | OSN Informatika Pemrograman 2024
Pembolehubah dan pemalar hanya berguna jika anda boleh menggunakannya untuk melakukan pengiraan. Istilah ungkapan adalah jargon C ++ untuk pengiraan. Anda telah melihat ungkapan paling sederhana:
int n; // perisytiharan n = 1; // ungkapan
Pengaturcara menggabungkan pemboleh ubah, pemalar dan operator untuk membuat ungkapan. Operator melakukan beberapa operasi aritmetik pada argumennya. Kebanyakan pengendali mengambil dua argumen - ini dipanggil operator binari . Beberapa pengendali mengambil hujah tunggal - ini adalah operator unary .
Semua ungkapan mengembalikan nilai dan jenis.
Pengendali binari
A pengendali binari adalah operator yang mengambil dua argumen. Jika anda boleh mengatakan var1 op var2, maka op mesti menjadi pengendali binari. Pengendali binari yang paling biasa adalah operasi mudah yang sama yang anda pelajari di sekolah menengah. Pengendali binari biasa muncul di dalam jadual. Pengendali
- (unary) | Mengembalikan negatif hujahnya | 2 |
---|---|---|
++ (unary) | Peningkatan | 2 |
- (unary) | Decrement | 3 |
* (binary) | Pendaraban | 3 |
/ (binary) > Divisyen | 3 | % (binari) |
Modulo | 4 | + (binari) |
5 | =, * =,% =, + =, - = (khas) | Jenis penyusunan |
|
Perduaan yang paling mudah ialah pengendali tugasan yang dicatat oleh tanda sama. Pengendali tugasan berkata, "Ambil nilai di sebelah kanan dan simpan di lokasi di sebelah kiri pengendali. " | Pendaraban, pembahagian, penambahan, pengurangan, dan modulo adalah pengendali yang digunakan untuk melakukan aritmetik. Mereka berfungsi seperti pengendali aritmetik yang anda pelajari dalam sekolah tatabahasa, dengan pertimbangan khusus berikut: |
|
Pendaraban mestilah dinyatakan secara nyata dan tidak pernah tersirat seperti dalam algebra. | Perhatikan contoh berikut: |
int n = 2; // menyatakan pembolehubah int m = 2n; // ini menghasilkan ralat | Ungkapan di atas tidak menetapkan | m |
n
. Sebaliknya, C ++ cuba mentafsirkan 2
n-
sebagai nama berubah. Oleh kerana nama-nama pembolehubah tidak boleh dimulakan dengan angka, ia menghasilkan ralat semasa langkah membina. Apa maksud programmer ialah:
int n = 2; int m = 2 * n; // ini adalah OK
Bahagian integer membuang baki yang lain. Oleh itu, yang berikut: int n = 13/7; // memberikan nilai 1 ke n Empat belas dibahagikan dengan 7 adalah 2. Tiga belas dibagi dengan tujuh adalah 1. Operator modulo mengembalikan sisanya selepas pembahagian (anda mungkin tidak ingat modulo): int n = 13% 7; // set n ke 6
Empat belas modulo tujuh adalah sifar. Tiga belas modulus tujuh adalah enam.
Mengungkap ungkapan gabungan
-
Satu ungkapan boleh termasuk beberapa operator: int n = 5 + 100 + 32;
Apabila semua pengendali adalah sama, C ++ menilai ungkapan dari kiri ke kanan:
5 + 100 + 32 105 + 32 137
-
Apabila operator yang berbeza digabungkan dalam satu ungkapan, C ++ menggunakan properti yang dipanggil keutamaan.
Precedence adalah perintah yang operator dinilai dalam ekspresi gabungan. Pertimbangkan contoh berikut:
int n = 5 * 100 + 32;
Apa yang pertama, pendaraban atau penambahan? Atau ungkapan ini hanya dinilai dari kiri ke kanan? Rujuk kembali ke meja, yang memberitahu anda bahawa pendaraban mempunyai keutamaan 3, yang lebih tinggi dari tahap penambahan penambahan yang 4 (nilai lebih kecil mempunyai prioritas yang lebih tinggi). Oleh itu pendaraban berlaku dahulu:
5 * 100 + 32 500 + 32 532
Perintah operasi dikurangkan oleh keutamaan pengendali. Seperti yang anda dapat lihat
int n = 32 + 5 * 100;
menghasilkan hasil yang sama:
32 + 5 * 100 32 + 500 532 Tetapi bagaimana jika anda benar-benar menginginkan 5 kali jumlah sebanyak 100 plus 32? Anda boleh mengatasi keutamaan operator dengan membungkus ungkapan yang anda mahu lakukan terlebih dahulu dalam kurungan, seperti berikut: int n = 5 * (100 + 32);
Sekarang penambahan dilakukan sebelum pendaraban:
5 * (100 + 32) 5 * 132 660
Anda boleh menggabungkan kurungan untuk membuat ungkapan yang rumit seperti yang anda suka. C ++ selalu bermula dengan kurungan tertutup terdalam yang dapat ditemui dan berfungsi keluar jalannya. (3 + 2) * ((100/20) + (50/5)) (3 + 2) * (5 + 10) 5 * 15 75
Anda boleh membahagikan ungkapan rumit dengan menggunakan pemboleh ubah perantaraan. Berikut adalah lebih selamat:
int factor = 3 + 2; int principal = (100/20) + (50/5); int total = factor * principal;
Menetapkan nama untuk nilai perantaraan juga membolehkan pengatur cara untuk menerangkan bahagian persamaan yang rumit - menjadikannya mudah bagi pengaturcara seterusnya.