C # Keutamaan Dan Keterkaitan Pengendali: Definisi dan Contohnya

Dalam tutorial ini kita akan belajar mengenai keutamaan operator dan kaitan dalam C #. Ini akan memberi kita idea tentang bagaimana ungkapan dinilai oleh penyusun C #.

C # Keutamaan Operator

Keutamaan operator adalah sekumpulan peraturan yang menentukan bagaimana ekspresi dinilai. Dalam C #, setiap operator C # mempunyai keutamaan yang ditetapkan dan berdasarkan keutamaan ini, ungkapan dinilai.

Sebagai contoh , keutamaan (*)operator pendaraban lebih tinggi daripada keutamaan (+)operator penambahan . Oleh itu, operasi yang melibatkan pendaraban dilakukan sebelum penambahan.

Lihat pernyataan di bawah.

 int x = 4 + 3 * 5;

Berapakah nilai x setelah melaksanakan penyataan ini?

Operan 3dikaitkan dengan +dan *. Seperti yang dinyatakan sebelumnya, pendaraban mempunyai keutamaan yang lebih tinggi daripada penambahan. Jadi, operasi 3 * 5itu dilakukan bukannya 4 + 3. Nilai pemboleh ubah x akan 19.

Sekiranya penambahan mempunyai keutamaan yang lebih tinggi, 4 + 3akan dinilai terlebih dahulu dan nilai x akan menjadi 35.

Jadual Keutamaan Operator

Semakin tinggi keutamaan pengendali, semakin tinggi ia muncul dalam jadual

C # Keutamaan Operator
Kategori Pengendali
Kenaikan dan Penurunan Postfix ++, -
Kenaikan Awalan, Penurunan dan Tidak Berguna ++, -, +, -,!, ~
Berganda *, /,%
Bahan tambah +, -
Pergeseran <>
Perhubungan <,,> =
Kesaksamaan ==,! =
Sedikit demi sedikit DAN &
Bitwise XOR ^
Sedikit demi sedikit ATAU |
Logik DAN &&
Logik ATAU ||
Ternari ? :
Tugasan =, + =, - =, * =, / =,% =, & =, | =, =, <> =

Pengendali penugasan mempunyai keutamaan terendah sementara pengendali kenaikan dan penurunan pasca perbaikan mempunyai keutamaan tertinggi.

Contoh 1: Keutamaan Operator

 using System; namespace Operator ( class OperatorPrecedence ( public static void Main(string() args) ( int result1; int a = 5, b = 6, c = 4; result1 = --a * b - ++c; Console.WriteLine(result1); bool result2; result2 = b>= c + a; Console.WriteLine(result2); ) ) ) 

Semasa kita menjalankan program, outputnya adalah:

 19 Salah

Mari kita fahami bagaimana ungkapan dinilai dalam program.

Keutamaan --dan ++lebih tinggi daripada *, dan keutamaan *lebih tinggi daripada -. Oleh itu kenyataannya,

 hasil1 = --a * b - ++ c;

adalah bersamaan dengan

 hasil1 = ((--a) * b) - (++ c);

Ekspresi dalam kurungan selalu dinilai terlebih dahulu tidak kira apa keutamaan operator di luarnya.

  • Pada mulanya, (--a) dinilai menghasilkan 4.
  • Kemudian (++ c) dinilai menghasilkan 5.
  • Sekarang, (a * b) dinilai menghasilkan 24.
  • Akhirnya, pengurangan dilakukan sehingga menghasilkan 19.
  • Oleh itu nilai akhir hasil1 akan menjadi 19.

Dalam ungkapan seterusnya, keutamaan +lebih tinggi daripada >=. Jadi, c dan a ditambahkan terlebih dahulu dan jumlahnya dibandingkan dengan b untuk menghasilkan false.

Keterkaitan Pengendali dalam C #

Pada bahagian sebelumnya, kami membincangkan mengenai keutamaan pengendali. Sekiranya dua operator dengan keutamaan yang berbeza digunakan, pengendali dengan keutamaan yang lebih tinggi dinilai terlebih dahulu.

Tetapi bagaimana jika kedua-dua pengendali mempunyai keutamaan yang sama?

Dalam kes sedemikian, ungkapan dinilai berdasarkan kaitan operator (kiri ke kanan atau kanan ke kiri).

Sebagai contoh:

int a = 5, b = 6, c = 3; hasil int = a * b / c;

Di sini, keduanya *dan /mempunyai keutamaan yang sama. Tetapi kerana kaitan operator ini dari kiri ke kanan , a * bdinilai terlebih dahulu dan kemudian pembahagian dilakukan. Hasil akhir ungkapan ini adalah 10.

Dalam contoh khusus ini, persatuan tidak begitu penting. Kerana walaupun pembahagian dilakukan sebelum pendaraban, hasilnya tidak akan terpengaruh.

Mari kita lihat contoh lain.

int a = 5, b = 6, c = 3; a = b = c;

Keterkaitan =operator adalah dari kanan ke kiri . Jadi nilai c (iaitu 3) diberikan kepada b, dan kemudian nilai b diberikan kepada a. Jadi setelah melaksanakan penyataan ini, nilai a, b dan c akan menjadi 3.

Jadual di bawah menunjukkan kaitan operator C #:

C # Keterkaitan pengendali
Kategori Pengendali Pergaulan
Kenaikan dan Penurunan Postfix ++, - Kiri ke kanan
Kenaikan Awalan, Penurunan dan Tidak Berguna ++, -, +, -,!, ~ Kanan ke kiri
Berganda *, /,% Kiri ke kanan
Bahan tambah +, - Kiri ke kanan
Pergeseran <> Kiri ke kanan
Perhubungan <,,> = Kiri ke kanan
Kesaksamaan ==,! = Kiri ke kanan
Sedikit demi sedikit DAN & Kiri ke kanan
Bitwise XOR ^ Kiri ke kanan
Sedikit demi sedikit ATAU | Kiri ke kanan
Logik DAN && Kiri ke kanan
Logik ATAU || Kiri ke kanan
Ternari ? : Kanan ke kiri
Tugasan =, + =, - =, * =, / =,% =, & =, | =, =, <> = Kanan ke kiri

Hampir semua pengendali mempunyai kaitan dari kiri ke kanan. Pengendali yang mempunyai kaitan dari kanan ke kiri adalah:

  • Pengendali yang tidak berfungsi
  • Pengendali Peningkatan dan Penurunan Awalan
  • Pengendali Ternary
  • Pengendali Tugasan

Contoh 2: Keterkaitan Pengendali

 using System; namespace Operator ( class OperatorPrecedence ( public static void Main(string() args) ( int a = 5, b = 6, c = 3; int result = a * b / c; Console.WriteLine(result); a = b = c; Console.WriteLine("a = (0), b = (1), c = (2)", a, b, c); ) ) ) 

Semasa kita menjalankan program, outputnya adalah:

 10 a = 3, b = 3, c = 3

Artikel menarik...