Select döngüsü karmasik ve uzun if-Else döngülerini daha anlasilir, kolay ve zevkli hâle getiren bir alternatiftir. Programlarimizi yalnizca If-Else döngüleri kullanarak da yazabilirdik, fakat Select bazi durumlarda çok daha faydali ve akillica olabilir. Diyelim ki haftanin günlerini gösteren bir kod parçasi yazacagiz.
Öncelikle iki tane degisken tanimlariz: gunAdi (string), gunSirasi (integer).
Bu programi önce If-Else ile yazalim;
|
Dim gunSirasi As Integer Dim gunAdi As String If gunSirasi = 1 Then gunAdi = "pazartesi" ElseIf gunSirasi = 2 Then gunAdi = "sali" ElseIf gunSirasi = 3 Then gunAdi = "çarsamba" ElseIf gunSirasi = 4 Then gunAdi = "persembe" ElseIf gunSirasi = 5 Then gunAdi = "cuma" ElseIf gunSirasi = 6 Then gunAdi = "cumartesi" ElseIf gunSirasi = 7 Then gunAdi = "pazar" End If |
|
Select Case gunSirasi Case 1 gunAdi = "pazartesi" Case 2 gunAdi = "sali" Case 3 gunAdi = "çarsamba" Case 4 gunAdi = "persembe" Case 5 gunAdi = "cuma" Case 6 gunAdi = "cumartesi" Case 7 gunAdi = "pazar" End Select |
Select döngüsünün içine baska neler yerlestirebilirdik bir bakalim.
|
Select Case gunSirasi Case 1 gunAdi = "pazartesi" Case 2 gunAdi = "sali" Case 3 gunAdi = "çarsamba" Case 4 gunAdi = "persembe" Case 5 gunAdi = "cuma" MessageBox.Show("mubarek gün") Case 6 gunAdi = "cumartesi" Case 7 gunAdi = "pazar" End Select |
|
Select Case gunSirasi Case 1, 2, 3, 4, 5 gunAdi = "hafta içi" Case 6, 7 gunAdi = "hafta sonu" Case Else gunAdi = "bilinmeyen gün" End Select |
‘Case Else’ ibaresine dikkat etmissinizdir! Eger bizim planladigimizdan farkli bir gunSirasi girilirse, örnegin 8, o zaman Case Else blogu devreye giriyor ve bu blokta verilen emirleri yerine getiriyor. Ihtiyaç olmadigi müddetçe kullanilmasi zorunlu degildir.
Select komutu görüldügü gibi çok kullanislidir. Fakat programimizda koyacagimiz sartlari iyi formüle etmek gerekir.
Misal olarak söyle bir program daha yazalim; iki tane sayi verilsin ve ekrana bu sayilardan hangisinin büyük hangisinin küçük oldugunu yazdiralim:
|
Dim a, b As Integer Select Case a – b Case Is > 0 MessageBox.Show(CStr(a) & ">" & CStr(b)) Case Is < 0 MessageBox.Show(CStr(a) & "<" & CStr(b)) Case 0 MessageBox.Show(CStr(a) & "=" & CStr(b)) End Select |
Not: CStr(a) komutu Integer olan ‘a’ degiskenini String‘e çevirir. Bu program için sart degildi fakat bazen gereklidir.
arkadaslar benim case den if e çevirmem gereken bir kodum var bana yardim edermisiniz!!!
kodlar
While
oku.Read()Select