Bagikan melalui


Operator Perbandingan (Visual Basic)

Berikut ini adalah operator perbandingan yang ditentukan dalam Visual Basic.

< pengoperasi

<= pengoperasi

> pengoperasi

>= pengoperasi

= pengoperasi

<> pengoperasi

Adalah Operator

IsNot Operator

Like Operator

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

Sintaksis

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

Bagian

result
Dibutuhkan. Boolean Nilai yang menunjukkan hasil perbandingan.

expression1, expression2
Dibutuhkan. Ekspresi apa pun.

comparisonoperator
Dibutuhkan. Operator perbandingan relasional apa pun.

object1, object2
Dibutuhkan. Nama objek referensi apa pun.

string
Dibutuhkan. Ekspresi apa pun String .

pattern
Dibutuhkan. Ekspresi atau rentang karakter apa pun String .

Komentar

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

Pengoperasi True kalau False kalau
< (Kurang 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

Nota

Operator = juga digunakan sebagai operator penugasan.

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

Membandingkan Angka

Saat Anda membandingkan ekspresi jenis Single dengan salah satu jenis Double, Single ekspresi dikonversi ke 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, Decimal ekspresi dikonversi ke Single atau Double. Untuk Decimal ekspresi, nilai pecahan apa pun yang kurang dari 1E-28 mungkin hilang. Kerugian nilai pecahan tersebut dapat menyebabkan dua nilai dibandingkan sama ketika tidak. Untuk alasan ini, Anda harus berhati-hati saat menggunakan kesetaraan (=) untuk membandingkan dua variabel floating-point. Lebih aman untuk menguji apakah nilai absolut perbedaan antara kedua angka kurang dari toleransi kecil yang dapat diterima.

Impresi Titik Mengambang

Ketika Anda bekerja dengan angka floating-point, 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 Option Compare pengaturan.

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

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

Option Compare Text mendasarkan perbandingan string 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, urutan pengurutan teks berikut berlaku:

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

Ketergantungan Lokal

Saat Anda mengatur Option Compare Text, hasil perbandingan string dapat bergantung pada lokal tempat aplikasi berjalan. Dua karakter mungkin dibandingkan sebagai sama dalam 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 Object ekspresi tidak diizinkan di bawah Option Strict On. Ketika Option Strict adalah Off, dan baik expression1 atau expression2 adalah Object ekspresi, jenis run-time menentukan bagaimana mereka dibandingkan. Tabel berikut ini memperlihatkan bagaimana ekspresi dibandingkan dan hasil dari perbandingan, tergantung pada jenis runtime operand.

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

Perbandingan numerik diperlakukan Nothing sebagai 0. Perbandingan string diperlakukan Nothing sebagai "" (string kosong).

Beban Berlebih

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

Perhatikan bahwa Operator = dapat kelebihan beban hanya 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 Boolean hasil yang mewakili apakah ekspresi yang dinyatakan mengevaluasi ke True. Saat Anda menerapkan > operator dan < ke string, perbandingan dibuat menggunakan urutan pengurutan abjad normal string. Pesanan 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