Giris:
Gündelik hayatimizda her zaman bazi kararlar aliriz: Eger yagmur yagiyorsa semsiyemizi açariz, eger yeterince paramiz varsa bilgisayar alabiliriz…
Karar alma programlama dillerinde de kilit roller oynar. Verilen bilgiyi test eder ve isleme göre bir sonuç üretir. Iste bu karar alma hadisesini program, if ve/veya select komutlarini kullanarak belirler.
Simdi VB.net’te if komutunu kullanarak ufak bir uygulama yazalim:
Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim sifre As String Label2.Text = "" sifre = TextBox1.Text If sifre = "yazilim mutfagi" Then Label2.Text = "Sifre dogru" End If End Sub End Class |
Burada önce if komutu ile bir string olan ‘sifre’ degiskenini test ediyoruz.
Eger ‘sifre’, ‘yazilim mutfagi’ ise islem if-End if blogu içerisinde gerçeklesiyor ve bu blok içerisinde verilen emirleri uyguluyor.
If komutu iki kisimdan olusur:
1-) Kosulan sart arastirilir;
2-) Eger aranan sart mevcutsa, verilen emir yerine getirilir.
Buradaki döngü gayet açik:
1-) TextBox’a bit string ifade giriliyor;
2-) Program bunu test ediyor
3-) Eger aranan sart (yani sifre=yazilim mutfagi) dogru ise Label2’ye “sifre dogru” yaziliyor.
Peki ya dogru degilse?
O zaman program bunu da test etmek durumunda. Bu da Else komutuyla oluyor:
Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim sifre As String Label2.Text = "" sifre = TextBox1.Text If sifre = "yazilim mutfagi" Then Label2.Text = "Sifre dogru" Else Label2.Text = "Sifre yanlis" End If End Sub End Class |
Diger karsilastirma operatörleri:
Simge: Manasi:
A > B |
A büyüktür B’den |
A<B |
A küçüktür B’den |
A=B |
A esittir B’ye |
A<>B |
A farklidir B’den |
A>=B |
A büyüktür veya esittir B |
A<=B |
A küçüktür veya esittir B |
Simdi bu operatörleri kullanarak bir uygulama gelistirelim:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim yas As Integer Label2.Text = "" yas = TextBox1.Text If yas >= 18 Then Label2.Text = "Oy verebilirsin" Else Label2.Text = "Oy veremezsin" End If End Sub |
Vb.net ‘te operatörler bunlarla sinirli degil elbette.
And, Or, Not operatörleri:
Program yazarken cogu zaman bazi seyleri ayni anda test etmek zorunda kaliriz. Farzedelim ki 6 yasindan küçükler ve 65 yasindan büyükler bir etkinlige bedava katilabiliyor olsun. Bunu program diline And kullanarak su sekilde aktarabiliriz:
Dim yas As Integer Dim engelli As Boolean Label2.Text = "" yas = TextBox1.Text engelli = False If yas <= 6 And yas >= 65 Then Label2.Text = "Giris bedava" Else Label2.Text = "Giris 10 TL" End If End Sub |
Bunu biraz daha gelistirerek söyle bir sart daha kosalim; 6 yasindan küçükler veya 65 yasindan büyükler ve engelliler bedava katilabilirler. O zaman:
Dim yas As Integer Dim engelli As Boolean Label2.Text = "" yas = TextBox1.Text engelli = True If yas <= 6 And yas >= 65 And engelli = True Then Label2.Text = "Giris bedava" Else Label2.Text = "Giris 10 TL" End If End Sub End Class |
Buraya dikkat! Musterinin yasi 6’dan küçük olacak, degilse 65’ten büyük olacak ve kisi engelli olacak.
Örnegin musteri 19 yasinda bir engelli ise yine 10TL ödeyecek.
Musteri 6 yasindan küçük veya 65 yasindan büyük fakat engelli degilse yine 10TL ödeyecek.
Bu sefer söyle bir sey yapalim; musteri 6 yasindan küçük veya 65 yasindan büyükse veya engelli ise giris bedava olsun:
Dim yas As Integer Dim engelli As Boolean Label2.Text = "" yas = TextBox1.Text engelli = True If (yas <= 6) Or (yas >= 65) Or engelli = True Then Label2.Text = "Giris bedava" Else Label2.Text = "Giris 10 TL" End If End Sub |
Not operatörü: Eger aranan sart saglanamiyorsa verilen emirleri yerine getirir:
If Not (engelli = True) Then Label2.Text = "Giris 10 TL" Else Label2.Text = "Giris bedava" End If |
Eger kisi engelli degil ise “Giris 10TL”
Iç içe ‘if – Else’ döngüleri:
If-Else döngüsü tek basina kullanildigi gibi bazi durumlarda da iç içe gelecek sekilde de kullanilir.
Hemen bir örnek uygulama tasarlayalim; diyelim ki 3 yasindan kucuk biri “bebek”, 3-16 yaslari arasindaki biri “çocuk” 16 yasindan buyukler ise “yetiskin” olsun:
Dim yas As Integer Label2.Text = "" yas = TextBox1.Text If yas > 3 Then If yas < 16 Then Label2.Text = "çocuk" Else Label2.Text = "yetiskin" End If Else Label2.Text = "bebek" End If End Sub |
If-Else döngülerini iç içe yerlestirerek bu testi bu sekilde yaptirabiliriz. Bu islemin aynisini diger operatörleri kullanarak da saglayabiliriz.
aradigimiz hiç bir sey bulamadikk yazikk
ii günler.projemde personel formu ma resim eklemek istiyorum.1 adet picturebox,1 adet resimseç butonu ekledim.resim seç butonuna tikladigim zaman openfiledialog açiliyor.resmi secip tamam dedigim zaman resim picturebox da görünüyor.daha sonra bu resimi insert etmek istiyorum.ekle adinda bir adet butonum var.ekle dedigim zaman "Failed to convert parameter value from a PictureBox to a Byte[]."seklinde hata aliyorum ne yapmam gerekiyor.yazmam gereken bir kod varsa kodu belirtebilirseniz çok memnun olurum.
Bir sayinin faktoriyelini if kullanmadan da bulabilirsin. Buldugun iki sonuç üzerinde de istedigin islemi yap.
q basicte tek if komutuyla iki sayinin faktoriyelini alan kodu yazabilir misiniz?
yani sayi1! – sayi2!
tesekkürler ..
Yorumu silmeniz önemli degil okumaniz yeter Ahmet Bey.
Ahmet Bey, beni aydinlattiginiz için çok tesekkür ederim.
(devami…)
Boolean da bunlardan birisidir ve konusma diline var-yok, evet-hayir, dogru-yanlis, olumlu-olumsuz seklinde çevrilebilir. Deger olarak True (dogru) veya False (yanlis) alir. Mesela;
Dim SifreDogru as Boolean
SifreBulundu=False
kod parçasindan istenilen sifrenin henüz bulunamadigi anlasiliyor. Yazilmis basit program kodlarini incelerseniz anlasilmasi daha kolay olur. Bir de bahsi geçen Sitring, integer, boolean gibi kelimeleri sözlükten arastirirsaniz islevlerinin ne oldugunu kavramaniz daha da kolaylasir. Kolay gelsin.
Tabiî ki,
Visual Basic programlama dilinde degiskenler programa su sekilde tanimlanir: Dim degiskenismi as degiskentürü.
Degisken (variable) dedigimiz sey program içerisinde kullanmak istedigimiz nesnelerdir. Bunlar ne olabilir; butonlar, metinler, sayilar, karakterler, etiketler (label)…
Örnegin bize sayi lazim ise, Dim sayi as Integer; tekst lazim ise, Dim tekst as String seklinde tanimlariz.
Boolean da bunlardan birisidir ve konusma diline var-yok, evet-hayir, dogru-yanlis, olumlu-olumsuz seklinde çevrilebilir. Deger olarak True (dogru) veya False (yanlis) alir. Mesela;
Dim SifreDogru as Boolean
S
Ihsan OLMEZ bey, kusura bakmayin yanlislikla yorumunuzu sildim, özür dilerim.
Sorunuz suydu: Ahmet Bey "As Boolean" degiskenini bana açiklaya bilirmisin? Ben daha yeni oldugum için ögrenmek istiyorum. Sende bana yardimci olursan cok makbule geçer. Simdiden tesekkür ederim.