Bagikan melalui


Operator Perbandingan (Visual Basic)

Berikut ini adalah operator perbandingan yang ditentukan dalam Visual Basic.

< operator

<= operator

> operator

>= operator

= operator

<> operator

Operator Is

Operator IsNot

Operator Like

Operator ini membandingkan dua ekspresi untuk menentukan apakah mereka sama atau tidak, dan jika tidak, bagaimana perbedaannya. Is, IsNot, dan Like dibahas secara rinci pada halaman Bantuan terpisah. Operator perbandingan relasional dibahas secara rinci di halaman ini.

Sintaks

result = expression1 comparisonoperator expression2  
result = object1 [Is | IsNot] object2  
result = string Like pattern  

Generator

result
Harus diisi. Nilai Boolean yang mewakili hasil perbandingan.

expression1, expression2
Harus diisi. Ekspresi apa pun.

comparisonoperator
Harus diisi. Operator perbandingan relasional apapun.

object1, object2
Harus diisi. Nama objek referensi apa pun.

string
Harus diisi. Ekspresi String apa pun.

pattern
Harus diisi. Ekspresi atau rentang karakter apa pun String.

Keterangan

Tabel berikut berisi daftar operator perbandingan relasional dan kondisi yang menentukan apakah result adalah True atau False.

Operator True if False if
<(Lebih Kecil dari) expression1 < expression2 expression1>= expression2
<=(Kurang dari atau sama dengan) expression1<= expression2 expression1 > expression2
>(Lebih besar dari) expression1 > expression2 expression1<= expression2
>=(Lebih besar dari atau sama dengan) expression1>= expression2 expression1 < expression2
= (Sama dengan) expression1 = expression2 expression1 <> expression2
<> (Tidak sama dengan) expression1 <> expression2 expression1 = expression2

Catatan

= Operator juga digunakan sebagai operator penugasan.

Operator Is, operator IsNot, dan operator Like memiliki fungsi perbandingan khusus yang berbeda dari operator dalam tabel sebelumnya.

Membandingkan Angka

Saat Anda membandingkan ekspresi jenis Single dengan salah satu jenis Double, ekspresi Single dikonversi menjadi Double. Perilaku ini berlawanan dengan perilaku yang ditemukan di Visual Basic 6.

Demikian pula, ketika Anda membandingkan ekspresi jenis Decimal dengan ekspresi jenis Single atau Double, ekspresi Decimal dikonversi menjadi Single atau Double. Untuk ekspresi Decimal, nilai pecahan apa pun yang kurang dari 1E-28 mungkin hilang. Kehilangan nilai pecahan tersebut bisa menyebabkan dua nilai yang dibandingkan sama dengan ketika tidak dibandingkan. Untuk alasan ini, Anda harus berhati-hati saat menggunakan kesetaraan (=) untuk membandingkan dua variabel titik-mengambang. Lebih aman untuk menguji apakah nilai mutlak selisih antara kedua angka kurang dari toleransi kecil yang dapat diterima.

Impresisi titik-mengambang

Ketika Anda bekerja dengan angka titik-mengambang, perlu diingat bahwa angka tersebut tidak selalu memiliki representasi yang tepat dalam memori. Ini dapat menyebabkan hasil yang tidak terduga dari operasi tertentu, seperti perbandingan nilai dan Operator Mod. Untuk informasi selengkapnya, lihat Pemecahan Masalah Jenis Data.

Membandingkan String

Saat Anda membandingkan string, ekspresi string dievaluasi berdasarkan urutan pengurutan alfabetnya, yang bergantung pada pengaturan Option Compare.

Option Compare Binary mendasarkan perbandingan string pada pengurutan yang berasal dari representasi biner internal karakter. Urutan pengurutan ditentukan oleh halaman kode. Contoh berikut menunjukkan urutan pengurutan biner yang khas.

A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø

Option Compare Text perbandingan string dasar pada urutan pengurutan tekstual yang tidak peka huruf besar/kecil yang ditentukan oleh lokal aplikasi Anda. Saat Anda mengatur Option Compare Text dan mengurutkan karakter dalam contoh sebelumnya, berlaku urutan pengurutan teks berikut:

(A=a) < (À= à) < (B=b) < (E=e) < (Ê= ê) < (Ø = ø) < (Z=z)

Dependensi Lokal

Saat Anda mengatur Option Compare Text, hasil perbandingan string dapat bergantung pada lokal tempat aplikasi berjalan. Dua karakter mungkin dibandingkan sama dengan satu lokal tetapi tidak di lokal lain. Jika Anda menggunakan perbandingan string untuk membuat keputusan penting, seperti apakah akan menerima upaya untuk masuk, Anda harus waspada terhadap sensitivitas lokal. Pertimbangkan untuk mengatur Option Compare Binary atau memanggil StrComp, yang memperhitungkan lokal.

Pemrograman Tanpa Jenis dengan Operator Perbandingan Relasional

Penggunaan operator perbandingan relasional dengan ekspresi Object tidak diizinkan di bawah Option Strict On. Ketika Option Strict adalah Off, dan baik expression1 atau expression2 adalah ekspresi Object, jenis run-time menentukan bagaimana mereka dibandingkan. Tabel berikut ini memperlihatkan bagaimana ekspresi dibandingkan dan hasil dari perbandingan, tergantung pada jenis runtime operand.

Jika operan adalah Perbandingan adalah
Keduanya String Urutkan perbandingan berdasarkan karakteristik pengurutan string.
Kedua angka Objek dikonversi menjadi Double, perbandingan numerik.
Satu numerik dan satu String String dikonversi menjadi Double dan perbandingan numerik dilakukan. Jika String tidak dapat dikonversi ke Double, maka InvalidCastException akan dilemparkan.
Salah satu atau keduanya adalah jenis referensi selain String InvalidCastException dilemparkan.

Perbandingan angka memperlakukan Nothing sebagai 0. Perbandingan string memperlakukan Nothing sebagai "" (string kosong).

Kelebihan beban

Operator perbandingan relasional (<. <=, >, >=, =, <>) dapat kelebihan beban, yang berarti bahwa kelas atau struktur dapat menentukan kembali perilaku mereka ketika operan memiliki jenis kelas atau struktur tersebut. Jika kode Anda menggunakan operator ini pada kelas atau struktur seperti itu, pastikan Anda memahami perilakunya yang didefinisikan ulang. Untuk informasi lebih lanjut, lihat Prosedur Operator.

Perhatikan bahwa = Operator hanya dapat kelebihan beban sebagai operator perbandingan relasional, bukan sebagai operator penugasan.

Contoh

Contoh berikut menunjukkan berbagai penggunaan operator perbandingan relasional, yang Anda gunakan untuk membandingkan ekspresi. Operator perbandingan relasional mengembalikan hasil Boolean yang mewakili apakah ekspresi yang dinyatakan mengevaluasi ke True. Saat Anda menerapkan operator > dan < ke string, perbandingan dibuat menggunakan urutan pengurutan alfabet normal dari string tersebut. Urutan ini dapat bergantung pada pengaturan lokal Anda. Apakah pengurutan peka huruf besar/kecil atau tidak tergantung pada pengaturan Perbandingan Opsi.

Dim x As testClass
Dim y As New testClass()
x = y
If x Is y Then
    ' Insert code to run if x and y point to the same instance.
End If

Dalam contoh sebelumnya, perbandingan pertama mengembalikan False dan perbandingan yang tersisa mengembalikan True.

Lihat juga