Perbedaan Struktur IIf dan Select - Case
Tuesday, March 17, 2020
1 Comment
IIf
If dan Select Case adalah sebuah pernyataan bersyarat. If dan Select Case adalah merupakan suatu perintah untuk mengambil suatu keputusan terhadap sebuah atau beberapa kondisi. Kondisi adalah ungkapan untuk mengevaluasi sebuah pernyataan apakah bernilai benar atau salah.
Select Case biasa dipakai untuk alternatif Bentuk If..Then..Else, karena kodenya lebih mudah dibaca. Perintah SELECT CASE adalah salah satu syntax yang digunakan dalam bahasa pemrograman Visual Basic for Applications (VBA). Perintah atau syntax ini sebenarnya memiliki peran yang hampir sama dengan perintah If-Then, namun dalam beberapa kasus sedikit berbeda atau kadang tergantung selera dari programmer lebih memilih menggunakan Select Case atau perintah If-Then. Dengan kata lain SELECT CASE adalah salah satu bentuk perintah kondisi dalam Visual Basic selain IF THEN. Dengan konsep memberikan kemungkinan nilai variabel yang ingin dicari.
Intruksi atau program CASE ini marupakan alternatif dari pernyataan IF untuk masalah dengan pilihan ganda. Semua masalah yang bisa dikerjakan oleh CASE pasti bisa ditangani oleh IF, tetapi tidak sebaliknya.Keuntungan yang lain memakai intruksi CASE….OF adalah lebih singkat dan cepat, sehingga memudahkan dalam pengerjaan suatu masalah dengan pilihan ganda.
IIf ( expr , truepart , falsepart )
Ketiga parameter diperlukan:
- expr adalah ekspresi yang harus dievaluasi.
- truepart mendefinisikan apa fungsi IIf kembali jika evaluasi expr mengembalikan true.
- falsepart mendefinisikan apa fungsi IIf kembali jika evaluasi expr mengembalikan false.
Contoh :
result = IIf (5 <10, "Ya itu adalah" , "Tidak itu tidak") 'Mengembalikan "Ya itu adalah"
hasil = IIf (2 + 2 = 5, "Benar", "Salah" ) 'Mengembalikan "Salah"
Efisiensi
Karena IIf adalah fungsi pustaka, itu akan selalu memerlukan overhead panggilan fungsi, sedangkan operator kondisional akan lebih mungkin menghasilkan kode inline.
Selanjutnya, tipe data dari argumennya adalah Variant . Jika fungsi dipanggil dengan argumen tipe lain (variabel atau literal), akan ada overhead tambahan untuk mengubahnya menjadi Variant . Mungkin juga ada overhead tambahan untuk memeriksa tipe argumen dan mengonversi salah satunya jika tidak memiliki tipe yang sama.
Efek samping
Masalah lain dengan IIf muncul karena ini adalah fungsi perpustakaan: tidak seperti operator kondisional turunan C, baik truepart dan falsepart akan dievaluasi terlepas dari mana yang benar-benar dikembalikan. Dalam cuplikan kode berikut:
nilai = 10
hasil = IIf ( nilai = 10 , '' TrueFunction '', FalseFunction)
meskipun TrueFunction adalah fungsi yang dimaksudkan untuk dipanggil, IIf akan memanggil TrueFunction dan FalseFunction .
Demikian pula,
Demikian pula,
a = 10
b = 0
hasil = IIf ( b <> 0 , a / b , 0 )
Meskipun maksudnya adalah untuk menghindari pembagian dengan nol, setiap kali b adalah nol kesalahan sebenarnya akan terjadi. Ini karena kode di cuplikan dijalankan seolah-olah oleh
a = 10
b = 0
_temp1 = 0
_temp2 = Kesalahan / b 'jika b = 0
_temp3 = b <> 0
If _temp3 Lalu
hasil = _temp1
Lain
hasil = _temp2
Akhiri Jika
Masalah ini membuat panggilan IIf () kurang berguna daripada operator kondisional. Untuk mengatasi masalah ini, pengembang Microsoft telah mempertimbangkan mengubah IIf menjadi fungsi intrinsik; jika ini terjadi, kompiler akan dapat melakukan inferansi tipe dan hubungan arus pendek dengan mengganti panggilan fungsi dengan kode inline.
Select Case
Pernyataan Select Case adalah untuk memeriksa kesesuaian beberapa list nilai yang disebut Case. Kemudian sebuah nilai/variable diperiksa kesesuaiannya dengan setiap case tersebut.
Select [ Case ] expression
[ Case expressionlist
[ statements ] ]
[ Case Else
[ elsestatements ] ]
End Select
Keterangan:
expression: adalah nilai/variable yang akan diperiksa dengan tipe data dasar dalam VB.NET seperti Boolean, Byte, Char, Date, Double, Decimal, Integer, Long, Object, SByte, Short, Single, String, UInteger, ULong, dan UShort.
expressionlist: List nilai atau variable dalam case untuk dibandingkan dengan expresion. Dalam satu case dapat memiliki beberapa nilai yang dipisahkan dengan koma.
statements: code/pernyataan yang akan dijalankan jika expression cocok dengan expressionlist yang ada pada case tersebut.
elsestatements: code/pernyataan yang akan dijalankan jika expression tidak ada yang cocok dengan expressionlist yang tersedia.
Terimakasih telah berkunjung semoga bermanfaat hehehe :D
Good your post
ReplyDelete