Program Kontrol ve Döngüleri


 PROGRAM KONTROL DEYİMLERİ

 8.1.1. IF Yapısı

 Programın akışını IF değimi ile birlikte verilen koşula bağlı olarak belirlenen veya ELSE, ELSEIF veya END IF değimleri ile oluşturulan  işlem bloğuna geçmesini veya söz konusu program bloğunun işletilmeyip atlatılmasını sağlar.

 Yazılım :

 

                        IF Şart THEN

                                   Komutlar

                        ELSE

                                   Komutlar

                        END IF

 

Şartın gerçekleşmesi durumunda THEN değiminden sonraki satır işletilir. Gerçekleşmemesi durumunda ise ELSE değiminden sonraki satırlar işletilir.           

Tek satırda şart yazılırsa  END IF değimi kullanılmaz.

                       IF Şart Komutlar THEN Komutlar

            IF Şart Komutlar

 

Örnek 8.1  :   Girilen üç notun ortalamasını alıp, bu notların ortalamasına göre öğrencinin geçip veya kaldığını yazan programı yapınız?

 

Private Sub Form_Load()

 

Dim n1,n2,n3,ort

  n1=val(InputBox(“1.Sınav Notunu Giriniz:”, “Sınav”);

  n2=val(InputBox(“2.Sınav Notunu Giriniz:”, “Sınav”);

  n3=val(InputBox(“3.Sınav Notunu Giriniz:”, “Sınav”);

  ort=(n1+n2+n3)/3

             IF (ort<50) Then

     MsgBox(“Kaldınız” &ort)

 

 Else

 

    MsgBox(“Geçtiniz” &ort)

 END IF

End Sub

 

8.1.2. Select Case Yapısı   

İşlev bakımından IF değimine çok benzemektedir. Çok sayıda IF yapısı içi içe kullanıldığı zaman programın okunurluğu azalır ve programı izlemek zorlaşır. Bu gibi durumlarda Select Case yapısı kullanılır.

 Yazılım : 

            Select Case Kontrol Değişkeni

                        Case ifade 1

                                   ……

                        Case ifade 2

                                   …….

                        Case Else

                                   …….

            End Select

 Genel yazılımdan anlaşılacağı gibi bloğu başlatan Select Case değiminden sonra yapılacak karşılaştırmalarda kullanılacak bir kontrol değişkeni bulunmaktadır. Eğer kontrol değişkeninin içeriği “ifade1” olarak verilen değerle aynı ise, birinci ifadenin içeriğini araştıran Case değiminden bir sonraki Case değimine kadar olan program satırları işletilir ve program akışı End Select değiminden sonraki satıra geçer. 

Örnek 8.2. : Yukarıdaki örneği bu Select Case değimiyle yapalım.

 

Private Sub Form_Load()

 

Dim n1,n2,n3,ort

n1=val(InputBox(“1.Sınav Notunu Giriniz:”, “Sınav”);

n2=val(InputBox(“2.Sınav Notunu Giriniz:”, “Sınav”);

n3=val(InputBox(“3.Sınav Notunu Giriniz:”, “Sınav”);

ort=(n1+n2+n3)/3

     Select Case ort

Case  ort<50

 MsgBox(“Kaldınız” &ort)

 Case ort>50

                        MsgBox(“Geçtiniz” &ort)

           

   End Select

End Sub

 

Örnek 8.3 : 1-3 arasında girilen sayıyı bulan programı yapanız?

 

Private Sub Form_Load()

Dim sayi

sayi=val(InputBox(“1 ile 3 arasında bir sayı giriniz.”);

Select Case sayi

Case 1 

 MsgBox(“Girdiğiniz Sayı 1”)

            Case 2

                        MsgBox(“Girdiğiniz Sayı 2” )

            Case 3

                        MsgBox(“Girdiğiniz Sayı 3” )          

   End Select

End Sub

 

8.1.3. IIF Yapısı

 

Bir değişkenin değeri iki durumdan birine göre değer alırsa IF yapısı yerine IIF kullanılabilir. Bu yapı bize daha az satırla aynı işi yapabilmemizi sağlar.

 

 

 

Yazılım : 

            IFF (Şart; Doğru ise; yanlış ise)

 

Örnek 8.4 :   

Private Sub Form_Load()

Dim n1,n2,n3,ort,son

     n1=val(InputBox(“1.Sınav Notunu Giriniz:”, “Sınav”);

     n2=val(InputBox(“2.Sınav Notunu Giriniz:”, “Sınav”);

     n3=val(InputBox(“3.Sınav Notunu Giriniz:”, “Sınav”);

     ort=(n1+n2+n3)/3

            son=IIF (ort<50, “geçtiniz”, “Kaldınız”)

MsgBox son

End Sub

 

8.1.4. Choose Yapısı           

Bir değişkenin aldığı değer bir sayıya bağlı ise bu yapıyı kullanmak daha uygun olur.

 Yazılım:

Sonuç= Choose(sayı, değer1, değer2, değer3, değer4,……,değerN)

 Örnek 8.5:  gun=Choose(GunNo, “Pazar”, “Pazartesi”, “Salı”, “Çarşamba”,    “Perşembe”, “Cuma”, “Cumartesi”)

8.1.5. Switch Yapısı

           Birden fazla şartı aynı anda kontrol etmek için kullanılır.

  Yazılım :           

Sonuç=Switch(Şart1, Değer1, Şart2, Değer2,…….,ŞartN, DeğerN)

            8.2.1. For-Next Döngüsü 

For-Next döngüsü sayacın başlangıç değerinden başlayarak bitiş değerine kadar istenilen miktarda artırılarak blok içindeki konutları çalıştırır.

 

Yazlım:

 

            For Sayac=BaşlangıçDeğeri to BitişDeğeri [Step Artırım]

                        Komutlar

            Next

 

Not:  Artma değeri verilmezse artış miktarı 1 olarak alınır.  

Örnek 8.6 :  1’den 10’a kadar olan sayıları toplayan programı yapınız?

 

Private Sub Form_Load()

 

Dim sayi,i

      For i=1 to 10

          sayi=sayi+i

      Next

            MsgBox sayi

End Sub 

8.2.2.While-Wend ve Do While- Loop Döngüsü

Bir şart gerçekleştiği sürece çalışması gereken program bloklarında kullanılırlar. 

 

Yazılım:                While Şart

                        Komutlar

            Wend

 Do While Şart

            Komutlar

Loop

Yukarıdaki her iki komutta da  şart gerçekleştiği sürece döngüde kalınır.

 Örnek 8.7: Klavyeden girilen 10 öğrencinin notlarına göre sınıf ortalamasını hesaplayan programı yapınız.

Private Sub Form_Load ()

Dim not (10) As Integer

Dim t As Integer

 i=1

                Do While i < = 10

                  Not(i) = InputBox(Str(i) & ”. Öğrencinin Notu”)

              t = t + not(i)

            Loop

ort=t/10

MsgBox ort

End Sub

 8.2.3. Do Until – Loop Döngüsü

Bu döngü yapısı diğerlerinden farklı olarak şart gerçekleşene kadar

çalışması gereken program bloklarında kullanılır.

 Yazılım :

            Do Until Şart

                        Komutlar

Loop

 8.2.4. Do-Loop While ve Do Loop Until Döngüsü

Bu döngü yapılarının diğerlerinden tek farkı şart döngüye girerken değil de çıkarken kontrol edilir. Yani döngü içerisindeki komutlar en az bir kez çalışırlar.

Yazılım :

            Do

                        Komutlar

            Loop Until Şart

 Do

            Komutlar

Loop While Şart

 8.2.5.      Döngü Kontrol İfadeleri

 8.2.5.1. Exit Do

Bu komut Do-Loop ve While Wend döngülerinden birinde bazı şartların gerçekleşmesi durumunda döngüden çıkmak için kullanılır.

 8.2.5.2. Exit For       

            For-Next döngüsü tamamlanırken bazı şartlar gerçekleştiğinde döngüden çıkmaya yarar.

 8.2.5.3. Exit Sub ve Exit Function 

           Exit Sub ve Exit Function değimleri alt program sonuna ulaşmadan alt programdan çıkmaya yarar.

 8.2.5.4. End

            Programı sona erdirir.