4. KONTROL VE DÖNGÜ KOMUTLARI KONTROL KOMUTLARI Kontrol deyimleri belirli ifadeleri kontrol etmek veya bazı şartların gerçekleşip gerçekleşmedigini kontrol etmek amacıyla kullanılan komutlardır. Visual Basic ‘te kullanılan kontrol deyimleri If kontrol yapısı Select Case yapısı If-End If Deyimi Kullanılan her If kontrolu için mutlaka bir End If kullanılır; bu terim kontrol yapısının sonlandığını belirtir. Deyim 1: If Şart Then Komutlar... End If
Eger koşul gerçekleşmemiş ise yapılması istenen bazı işlemler varsa o zaman şu şekilde bir kontrol yapısı kullanılabilir. Deyim 2: If Şart Then Komutlar... Else Komutlar... End If Örnek: not=val(text1.text) If not>=50 Then text2.text=“geçti” Else text2.text=“kaldı” End If
Aynı anda birkaç koşul için karşılaştırma yapılmak istenirse; Deyim 3: If Şart1 Then Komutlar... ElseIf Şart2 Then Komutlar... ElseIf Şart3 Then Komutlar... Else Komutlar... End If Hiç bir şart doğru değil ise... Örnek: If yas < 5 Then Print "anaokulagitmeli" ElseIf yas < 12 Then Print "ilkokula gitmeli" ElseIf yas < 18 Then Print "liseye gitmeli" Else Print "üniversiteye gitmeli" End If
End If terimini kullanmadan ve tek koşulun gerçekleşmesi için; Deyim 4: If Şart Then Komutlar... Örnek: If yas>12 Then msgbox(“ilkokul bitmiş”) If yas>30 Then Print “Geçmiş olsun !” If a>50 Then x=x+1: z=5*x
Select Case Deyimi Bu kontrol yapısında sadece bir degişkenin durum kontrolü yapılır. Kontrolü yapılacak degişkenin genel olarak alabilecegi değerler belirli ise bu yapının kullanılması If yapısına göre daha avantajlıdır. Her Select Case ifadesi için bir End Select kullanılır. Select Case degisken Case deger1 Komutlar... Case deger2 Komutlar... Case > değer3 Komutlar... Case Else Komutlar.... End Select
Örnek : Dim no As String no = InputBox("") Select Case no Case 2004485021 Print "Murat Tuna" Case 2004485022 Print "Ayse Sinem" Case 2004485023 Print "Hakan Kaya" Case 2004485024 Print "Abdullah Kahyalı" Case 2004485025 Print "Hatice Uygun" End Select
Örnek : Select Case ogrnot End Select Dim ogrnot As Integer ogrnot = Val(Text1.Text) Select Case ogrnot Case Is < 0, Is > 100 Text2.Text = "Notunuzu Yanlış Girdiniz !" Case 1 To 49 Text2.Text = "FF" Case 50 To 59 Text2.Text = "FD" Case 60 To 64 Text2.Text = "DD" Case 65 To 69 Text2.Text = "DC" Case 70 To 74 Text2.Text = "CC" Case 75 To 79 Text2.Text = "CB " Case 80 To 84 Text2.Text = "BB " Case 85 To 89 Text2.Text = "BA" Case Else Text2.Text = "AA" End Select
DÖNGÜ KOMUTLARI Belirli işlemleri belirli sayıda veya herhangi bir şart sağlanana kadar tekrarlamak amacı ile kullanılırlar. Döngü çeşitleri sağda verilmiştir. For … Next Do While ... Loop Do Until …Loop For...Next Döngüsü Bütün dillerde bulunan en temel döngü yapısıdır. Genel formatı aşağıdaki gibidir. For sayac=başlangıç To bitiş [Step artım] Komutlar... Next sayac
Örnek : Fact=1:n=5 For i=1 To n Fact= Fact * i Next i Örnek : 5 ! ’i hesaplayınız. Fact=1:n=5 For i=1 To n Fact= Fact * i Next i Örnek : Dim i As Integer For i = 0 To 10 Step 2 Print i Next i Örnek : Dim i As Integer For i = 10 To 0 Step -2 Print i Next i
Örnek : 1’den 10’a kadar olan sayıları toplatınız. Dim a As Integer Dim b As Integer For a = 1 To 10 b = b + a Next a Print b Örnek : 1’den 10’a kadar olan sayıları toplatınız. (print’ e dikkat!) Dim a As Integer Dim b As Integer For a = 1 To 10 b = b + a Print b Next a
Do While... Loop deyimi Bir blok deyimi, verilen şart doğru (True) olduğu sürece işletir. Do While Şart Komutlar... Loop Do Until ...Loop Deyimi Bir blok deyimi, verilen şart doğru (True) olana kadar işletir. Do Until Şart Komutlar... Loop
1’den 10’a kadar olan sayıları toplatınız. Örnek : 5 ! ’i hesaplayınız. Fact=1: i=1: n=5 Do While i<=n Fact=Fact * i i=i+1 Loop Fact=1: i=5 :n=1 Do Until i<=n Fact=Fact * i i=i-1 Loop Örnek : 1’den 10’a kadar olan sayıları toplatınız. i = 1 Do While i <= 10 Print i; i= i + 1 Loop i=1 Do Until i > 10 Print i; i = i + 1 Loop
Do Until (ogrnot > 0) AND (ogrnot < 100) Örnek : Girilen not 1-100 aralığı dışında ise, bu aralıkta not girilene kadar tekrar tekrar sorulsun. Dim ogrnot As Integer Do Until (ogrnot > 0) AND (ogrnot < 100) ogrnot = InputBox("not girişi", "sınav notunuz", "50") Loop MsgBox ("Girilen Not =" & ogrnot) VB’de Mantıksal Karşılaştırma Operatörleri 1. AND (VE) Örnek : if a>50 and b>70 then 2. OR (VEYA) Örnek : if a>50 or b>70 then 3. NOT (DEĞİL) Örnek : if not a=50 then 4. XOR (AYNI İSE 0 FARKLI İSE 1 YAP) Örnek : Print 11001101 xor 00110000 ’11111101
IIF() Fonksiyonu: Yapısı: IIF(Koşul,birinci ifade,ikinci ifade) Bir bakıma , IF deyiminin kısıtlı bir şeklidir. Yalnızca iki olasılığın söz konusu olduğu durumlarda IF deyimi yerine IIF fonksiyonu kullanılabilir. Private Sub Command2_Click() sonuc = IIf(ortalama >= 50, "Geçer Not", "Zayıf Not") MsgBox sonuc End Sub Dim Sonuç As String Notu = 45 Sonuç = IIF(Notu > 50, "Geçer","Kalır") ‘ Sonuç = "Kalır"
PROGRAM AKIŞI SIRASINDA BİLGİ VERMEK VE ONAY ALMAK İÇİN KULLANILAN MESAJ KUTULARIDIR.
1 6 7 2 3 4 5 256 512 1024 16 32 48 64
DİKKAT!!! KULLANICININ SEÇTİĞİ DÜĞMEYE GÖRE MESAJ KUTUSUNDAN BİR TAMSAYI DÖNER. ÖRNEĞİN KULLANICI “OK” BUTONUNA TIKLADIYSA 1 SAYISI DÖNER.
DÖNEN SAYILAR 1 >>vbOK (TAMAM) 2 >>vbCancel (İPTAL) 3 >>vbAbort (DURDUR) 4 >>vbRetry (YENİDEN DENE) 5 >>vbIgnore (YOKSAY) 6 >>vbYes (EVET) 7 >>vbNo (HAYIR)
ÖRNEK Dim cevap If cevap=1 then End if Cevap=msgbox(“bugün kendinizi iyi hissediyormusunuz?”,1+32+0+4096,”Nasılsınız?”) If cevap=1 then Print “kendini iyi hissediyor” Else Print “kendini kötü hissediyor” End if
ÖRNEK Dim cevap Cevap=msgbox(“dosya silinsin mi?”,vbYesNo+vbDefaultButton2+vbQuestion, “Dikkat! Dosya silinecek”)
KULLANICILARDAN DEĞER ALMAK İÇİN KULLANILIR KULLANICILARDAN DEĞER ALMAK İÇİN KULLANILIR. BU FONKSİYONDA STANDART OLARAK SADECE “OK” VE “CANCEL” BUTONU BULUNUR.