Bahasa C
Dalam tutorial ini kita akan belajar tentang prioritas operator dan asosiatif dalam C#. Ini akan memberi kita gambaran tentang bagaimana ekspresi dievaluasi oleh kompiler C#.
Prioritas operator adalah seperangkat aturan yang mendefinisikan bagaimana ekspresi dievaluasi. Dalam C#, setiap operator C# memiliki prioritas yang ditetapkan dan berdasarkan prioritas ini, ekspresi dievaluasi.
Misalnya , keutamaan perkalian (*)
operator lebih tinggi dari prioritas penambahan (+)
operator. Oleh karena itu, operasi yang melibatkan perkalian dilakukan sebelum penambahan.
Perhatikan pernyataan di bawah ini.
int x = 4 + 3 * 5;
Berapa nilai x setelah menjalankan pernyataan ini?
Operan 3
dikaitkan dengan +
dan *
. Seperti yang dinyatakan sebelumnya, perkalian memiliki prioritas lebih tinggi daripada penambahan. Jadi, operasi 3 * 5
dilakukan sebagai ganti 4 + 3
. Nilai variabel x akan menjadi 19
.
Jika penambahan akan memiliki prioritas yang lebih tinggi, 4 + 3
akan dievaluasi terlebih dahulu dan nilai x akan menjadi 35
.
Semakin tinggi prioritas operator, semakin tinggi muncul di tabel
Kategori | Operator |
---|---|
Peningkatan dan Penurunan Postfix | ++, -- |
Peningkatan Awalan, Penurunan, dan Unary | ++, --, +, -, !, ~ |
Perkalian | *, /, % |
Tambahan | +, - |
Pergeseran | <<,>> |
Relasional | <, <=,>,>= |
Kesetaraan | ==, != |
Bitwise DAN | & |
Bitwise XOR | ^ |
Bitwise ATAU | | |
Logis DAN | && |
Logis ATAU | || |
Terner | ? : |
Tugas | =, +=, -=, *=, /=, %=, &=, |=, ^=, <<=,>>= |
Operator penugasan memiliki prioritas terendah sedangkan operator kenaikan dan penurunan postfix memiliki prioritas tertinggi.
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);
}
}
}
Saat kita menjalankan program, outputnya adalah:
19 False
Mari kita pahami bagaimana ekspresi dievaluasi dalam program.
Prioritas --
dan ++
lebih tinggi dari *
, dan prioritas *
lebih tinggi dari -
. Demikian pernyataan,
result1 = --a * b - ++c;
setara dengan
result1 = ((--a)*b)-(++c);
Ekspresi di dalam tanda kurung selalu dievaluasi terlebih dahulu tidak peduli apa prioritas operator di luarnya.
4
. 5
. 24
. 19
. 19
.
Dalam ekspresi berikutnya, prioritas +
lebih tinggi dari >=
. Jadi, c dan a ditambahkan terlebih dahulu dan jumlahnya dibandingkan dengan b untuk menghasilkan false
.
Pada bagian sebelumnya, kita telah membahas tentang prioritas operator. Jika dua operator dengan prioritas berbeda digunakan, operator dengan prioritas lebih tinggi dievaluasi terlebih dahulu.
Tapi bagaimana jika kedua operator memiliki prioritas yang sama?
Dalam kasus seperti itu, ekspresi dievaluasi berdasarkan asosiatifitas operator (kiri ke kanan atau kanan ke kiri).
Misalnya:
int a = 5, b = 6, c = 3; int result = a * b / c;
Di sini, keduanya *
dan /
memiliki keutamaan yang sama. Tetapi karena asosiatifitas operator ini adalah dari kiri ke kanan , a * b
dievaluasi terlebih dahulu dan kemudian dilakukan pembagian. Hasil akhir dari ekspresi ini adalah 10
.
Dalam contoh khusus ini, asosiatifitas tidak terlalu penting. Karena meskipun pembagian dilakukan sebelum perkalian, hasilnya tidak akan terpengaruh.
Mari kita lihat contoh lain.
int a = 5, b = 6, c = 3; a = b = c;
Keterkaitan =
operator dari kanan ke kiri . Jadi nilai c (yaitu 3
) ditugaskan ke b , lalu nilai b ditugaskan ke a . Jadi setelah mengeksekusi pernyataan ini, nilai a , b dan c akan menjadi 3
.
Tabel di bawah ini menunjukkan asosiatifitas operator C#:
Kategori | Operator | Asosiasi |
---|---|---|
Peningkatan dan Penurunan Postfix | ++, -- | Kiri ke Kanan |
Peningkatan Awalan, Penurunan, dan Unary | ++, --, +, -, !, ~ | Kanan ke Kiri |
Perkalian | *, /, % | Kiri ke Kanan |
Tambahan | +, - | Kiri ke Kanan |
Pergeseran | <<,>> | Kiri ke Kanan |
Relasional | <, <=,>,>= | Kiri ke Kanan |
Kesetaraan | ==, != | Kiri ke Kanan |
Bitwise DAN | & | Kiri ke Kanan |
Bitwise XOR | ^ | Kiri ke Kanan |
Bitwise ATAU | | | Kiri ke Kanan |
Logis DAN | && | Kiri ke Kanan |
Logis ATAU | || | Kiri ke Kanan |
Terner | ? : | Kanan ke Kiri |
Tugas | =, +=, -=, *=, /=, %=, &=, |=, ^=, <<=,>>= | Kanan ke Kiri |
Hampir semua operator memiliki asosiatif dari kiri ke kanan. Operator yang memiliki asosiasi dari kanan ke kiri adalah:
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);
}
}
}
Saat kita menjalankan program, outputnya adalah:
10 a = 3, b = 3, c = 3
Bahasa C
C while dan do... while Loop Dalam tutorial ini, Anda akan belajar membuat while dan do... while loop dalam pemrograman C dengan bantuan contoh. Dalam pemrograman, loop digunakan untuk mengulang blok kode sampai kondisi tertentu terpenuhi. Pemrograman C memiliki tiga jenis loop. untuk loop perul
C Praprosesor dan Makro Dalam tutorial ini, Anda akan diperkenalkan dengan c preprocessors, dan Anda akan belajar menggunakan kompilasi #include, #define dan conditional dengan bantuan contoh. Preprosesor C adalah praprosesor makro (memungkinkan Anda untuk menentukan makro) yang mengubah program
Apa itu Efisiensi Operator Mesin? Efisiensi Operator Mesin, atau MOE, mengukur kinerja operator mesin industri. Direpresentasikan dalam bentuk persentase, hal ini mempertimbangkan waktu, suku cadang yang dibuat, dan kualitas suku cadang untuk mengukur kinerja karyawan lantai bengkel secara efektif.
Ahli mesin CNC yang bekerja dengan kontrol Heidenhain CNC dapat dengan bebas mengunduh manual Pemrograman Heidenhain.Manual Heidenhain tersedia dalam berbagai bahasa.Ahli mesin CNC bahkan dapat mengunduh Perangkat Lunak Pemrograman Heidenhain CNC secara gratis dari situs web Heidenhain. Unduh Grat