ÜNİT E ÜNİTE KONTROL DEYİMLERİ KARAR YAPILARI. IF Deyimi GİRİŞ

Benzer belgeler
Her Select Case bloğu, mutlaka End Select ile bitmek zorundadır.

4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları

UYGULAMALAR -2 Select case Yapısı: Select Case case case case case case is case Else End Select Örnek:

Nesne Yönelimli Programlama

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 5. Bölüm Karar ve Çevrim Kontrol Yapıları

ALGORİTMA VE PROGRAMLAMA I

Uygulama 1) Sabit olarak belirlenen sayıda tekrar eden (5 kez) Visual Basic kaynak kodlarını yazınız.

GÜZ YY. - MKT103 - GÖRSEL PROGRAMLAMA DERSİ - ARA SINAVI

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

BÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI

Akış Kontrol Mekanizmaları

BİLGİSAYAR PROGRAMLAMA DERSİ

Imports ifadesi, program satırlarının en üstüne (Public Class satırından önce) yazılmalıdır. Aksi halde hata mesajı ile karşılaşılır.

Uygulama 1) Tur sayısını 1 den klavyeden girilen n e kadar ekrana yazarak birikimli (kümülatif) toplam alan kaynak kodları yazınız.

BİLGİSAYAR PROGRAMLAMA DERSİ

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ


5. Atlama, Karar ve Çevrim Kontrol Deyimleri

Yukardaki gibi sonsuz döngülü programlara Ctrl+Break tuş takımı ile müdahale edilmesi gerekir, aksi halde program sonsuz döngüye girer.

İŞLEM SAYISI BELLİ OLAN DÖNGÜLER

Temel Bilgisayar Programlama

Döngüler - Loops 4/9/2010. ENF-102 Jeoloji Giriş. Sayaç kontrollü bir döngüdeki temel öğeler. Sayaç (counter) Kontrollü Döngüler.

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

Karşılaştırma İşlemleri ve Koşullu İfadeler

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

Bölüm 10: PHP ile Veritabanı Uygulamaları

GİRİ ÇIKIŞ İŞLEMLERİ VE BİLGİ TÜRLERİ

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

Diziler İndisli Değişkenler

Döngüler - Loops 4/13/2011. ENF-102 Jeoloji Sayaç kontrollü bir döngüdeki temel öğeler. Sayaç (counter) Kontrollü Döngüler.

Program Akış Kontrol Yapıları

KONTROL YAPILARI (CONTROL STRUCTURES)

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu

Algoritmalar ve Programlama. Algoritma

Algoritma ve Programlamaya Giriş

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA

Matematiksel Operatörler

Nesne Yönelimli Programlama

-A Grubu- MKT103 Görsel Programlama 2015/2016 Güz Dönemi Final Sınavı

Uygulama1) Şart yapısının kullanımı CheckBox1 bileşeninin işaretlendiğinde ekranda Kutu işaretlendi mesajı veren kodları yazınız.

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

HSancak Nesne Tabanlı Programlama I Ders Notları

Programlama Giriş. 17 Ekim 2015 Cumartesi Yrd. Doç. Dr. Mustafa YANARTAŞ 1

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

PROGRAMLAMA DİLLERİ I

BMT 101 Algoritma ve Programlama I 7. Hafta. Yük. Müh. Köksal Gündoğdu 1

Pascal Programlama Dili

Timer İle arka plan renk değişimi

ALGORİTMA VE PROGRAMLAMA I

5. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

VERİ TABANI ve YÖNETİMİ

JAVA DÖNGÜ DEYİMLERİ. For Döngüsü

ALGORİTMA VE PROGRAMLAMA I

Genel Kullanılış 1: [değişken ismi] = [değişken ismi] [işlem] [sayı veya string ifade veya değişken]

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

İNTERNET PROGRAMCILIĞI DERSİ ÇALIŞMA SORULARI

DİZİLER. Bu ünitede yapılan örnekler Visual Studio 2010 programındaki Visual Basic programlama diliyle çözülmüştür.

Programlama Dili Prensipleri. Lab Notları 4

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

HSancak Nesne Tabanlı Programlama I Ders Notları

ORACLE DA KÜRSÖRLER. Gerekli sistem değişkenleri

Java da Program Denetimi ve Operatörler

BİL-142 Bilgisayar Programlama II

PASCAL PROGRAMLAMA DİLİ YAPISI

INPUTBOX KULLANIMI. Komut Düğmesine uygulanan algoritma örneği

10 LU SAYISAL SİSTEMİ İLE 2 Lİ SAYISAL SİSTEMİ ARASINDA ÇEVİRİM UYGULAMASI

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

Programlama Dili Prensipleri. Lab Notları 8 ve 9

SAB104 Bilgisayar Programlama

BİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2

1. LabVIEW ile Programlama

1. PL/SQL de kontrol yapıları

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Algoritma Geliştirmek, Satır Kod)

ÜNİTE. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA İÇİNDEKİLER HEDEFLER KARAR KONTROL DEYİMLERİ

Uygulama 1) Aşağıdaki genel (global) değişken tanımlamalarını VB üzerinde yapınız. Süre 10 dak.

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar

VERİ TABANI YÖNETİM SİSTEMLERİ II. 3. SQL PROGRAMLAMA BLOKLARI ve AKIŞ DENETİMİ

BBS515 Nesneye Yönelik Programlama. Ders 3 Zümra Kavafoğlu

İnternet Programcılığı Dersi 2.Dönem Ders Notu

Programlama Dilleri 3

MATLAB de. Programlama. Kontrol Yapıları. Döngü Yapıları. Doç. Dr. İrfan KAYMAZ Matlab Ders Notları

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

Bölüm 3 Yapısal Programlama

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik.

PROGRAMLAMAYA GİRİŞ DERS 2

Byte (Tamsayı) 1 0 ile 255 arasında 10 sayısı

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

Fatura Dinamik Kodlama İyileştirmeleri

BÖLÜM 2: ALGORİTMALAR

Lambda İfadeleri (Lambda Expressions)

HSancak Nesne Tabanlı Programlama I Ders Notları

BMT 101 Algoritma ve Programlama I 3. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1

Uygulamalar 4 IsMissing Fonksiyonlar ve Alt Programlar Prosedür Parametreleri Public Function f(x,y,optional t, Optional k) End Function 1.

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir.

Transkript:

GİRİŞ KARAR YAPILARI Herhangi bir olayın gerçekleşmesinin bir veya birkaç şarta bağı olduğu durumlar vardır. Ayrıca bir şartın gerçekleşmesi durumunda meydana gelecek bir veya birden çok olay söz konusu olabilir. Bu gibi durumlarda program kodlarıyla çözümün sağlanması kontrol deyimleri adını verdiğimiz komutlar kullanılarak gerçekleştirilir. KONTROL DEYİMLERİ Günlük hayatta birçok durumda karar vermek zorunda kalırız. Eğer hava güneşliyse pikniğe gidelim veya Yüzme bilmiyorsan denizde çok açılmamalısın gibi şarta bağlı kararlar verirken şartın gerçekleşmesi durumdaki eylemimiz şartın gerçekleşmemesi durumundaki eylemimizden farklı olacaktır. Programlamada, günlük hayattaki bu tür kararlarımızın veya daha teknik konulardaki kararların değerlendirilmesi için kullandığımız kontrol deyimleri programlama dillerine göre bazı kullanım farklılıkları taşısalar da genelde aşağıda detaylı olarak açıklayacağımız deyimlerdir. ler, veri ve bilgiler üzerinde matematiksel ve mantıksal işlemlerin uygulanmasını sağlamanın yanı sıra, programlamanın mantığının oluşmasında ve akış sırasının belirlenmesinde de önemli rol oynarlar. Geliştirilen her programın mantığı normalde yukarıdan aşağıya doğrudur. Yani programın birinci satırından başlanarak, her satır sırayla işlendikten sonra son satıra ulaşılır ve program son satıra gelindiğinde durur. Ancak problemin çözümü için geliştirilen algoritmalar genelde bu sıralı akış mantığının değiştirilmesini gerektirebilir. Programın herhangi bir satırından çok daha aşağılardaki bir satıra veya daha yukarıdaki bir satıra geçiş yapılarak program akışının oradan devam etmesi istenebilir. Veya herhangi bir işlem grubunun tekrar tekrar çalıştırılması gerekebilir. Bütün bu durumların gerçekleştirilmesinde birçok programlama dilinde artık standart hale gelmiş kontrol deyimleri kullanılmaktadır. Bu kontrol deyimlerinden en temel olanları, gelişim süreci de dikkate alınarak aşağıda anlatılmaktadır. IF i ÜNİTE ÜNİT E Program akışının şarta bağlı olarak 6 değiştirilmesini veya bir işlem grubunun şarta bağlı olarak çalıştırılmasını sağlayan, hemen hemen bütün 4 programlama dillerinde bulunan çok kullanışlı bir deyim grubudur. IF yapısı şarta bağlı olarak bazı durumların gerçekleşmesini, bazı durumların da gerçekleşmemesini sağlar. 1

IF deyimi programda verilen koşula bağlı olarak akışının mevcut kod bloğuna geçmesini veya söz konusu bloğun işletilmeyip atlatılmasını sağlar. IF yapısı, şartın ve şarta bağlı gerçekleşecek olayların tek veya çok olmasına göre farklı yapılarda kullanılır. Basit IF Tek şartın olduğu durumlarda IF yapısının tek satırda kullanımı şu şekilde olur. IF deyimi ile birlikte THEN deyimi de kullanılmalıdır. IF deyiminde parametre olarak verilen şart mantıksal doğru (True) ise belirtilen işlem gerçekleşecektir. : IF : IF şart THEN Dim x As Integer x = InputBox("Hava sıcaklığını giriniz") If x < 0 Then Label1.Text = "Bu gün hava çok soğuk" Örnekte görüldüğü gibi girilen değer 0 dan küçük ise Label nesnesinde Bu gün hava çok soğuk mesajı görüntülenecektir. Ancak girilen değerin 0 veya pozitif bir değer olması durumunda programın nasıl davranacağı belirtilmemiştir. Tek şartın olduğu durumlarda IF yapısının çok satırda kullanımı şu şekilde olur. Çok satırlı kullanımda blok sonunda kullanılmalıdır. : IF : IF şart THEN IF deyiminde parametre olarak verilen şart mantıksal doğru (True) ise IF ile arasında yer alan satırlar işletilir. Şart mantıksal yanlış (False) ise IF ile arasında yer alan satırlar atlatılıp programın akışı deyiminden sonra gelen ilk satıra geçer. Dim x As Integer x = InputBox("Hava sıcaklığını giriniz ") If x < 0 Then Label1.Text = "Bu gün hava çok soğuk" End If Örnekte görüldüğü gibi girilen değer 0 dan küçük ise Label nesnesinde Bu gün hava çok soğuk mesajı görüntülenecektir. Ancak girilen değerin 0 veya pozitif bir değer olması durumunda programın nasıl davranacağı belirtilmemiştir. 2

Tek şartın olduğu ancak şartın gerçekleşmemesi durumunda ne yapılacağının belirtildiği IF yapısı ise şu şekilde kullanılır. Bu kullanım şeklinde Else deyim IF deyimi ile birlikte kullanılmalıdır. : IF : IF şart THEN çalıştırılacak işlemgrubu2 Dim x As Integer x = InputBox("Hava sıcaklığını giriniz ") If x < 0 Then Label2.Text = "Bu gün hava çok soğuk" Else _ Label2.Text = "Bu gün hava çok soğuk değil" Girilen değerin 0 dan küçük olması durumunda Label nesnesinde Bu gün hava çok soğuk mesajı, 0 veya pozitif olması durumunda ise Bu gün hava çok soğuk değil mesajı görüntülenecektir. Ancak bu kullanımda dikkat edilmesi gereken durum bütün bu IF komutunun tek satıra yazılmasıdır. IF komutunun bir satıra sığmaması durumunda, birden çok satıra yazılması istenildiği durumlarda ( _ )kullanılarak bu durum sağlanmalıdır. Tek şartın olduğu ancak şartın gerçekleşmemesi durumlarda ne yapılacağının belirtildiği birden çok satıra yazılabilen IF yapısı ise şu şekilde kullanılır. IF yapısının bu kullanımında Else deyimi ve deyimi IF deyimi ile birlikte kullanılmalıdır. : IF : IF şart THEN Dim x As Integer x = InputBox("Hava sıcaklığını giriniz ") If x < 0 Then Label3.Text = "Bu gün hava çok soğuk" Else Label3.Text = "Bu gün hava çok soğuk değil" End If 3

Bu örnekte de girilen değerin 0 dan küçük olması durumunda Label nesnesinde Bu gün hava çok soğuk mesajı, 0 veya pozitif olması durumunda ise Bu gün hava çok soğuk değil mesajı görüntülenecektir. Ancak bu kullanımda birden çok satır kullanımı söz konusu olmaktadır. Tek şartın olduğu şartın gerçekleşmesi durumunda birden çok işlemin gerçekleştirildiği, şartın gerçekleşmemesi durumlarda ise ne yapılacağının belirtildiği birden çok satıra yazılabilen IF yapısı ise şu şekilde kullanılır. IF yapısının bu kullanımında Else deyimi ve deyimi IF deyimi ile birlikte kullanılmalıdır. : IF : IF şart THEN çalıştırılacak işlemgrubu4 Dim x As Integer x = InputBox("Hava sıcaklığını giriniz ") If x < 0 Then Label3.Text = "Bu gün hava çok soğuk" Label4.Text = "Dışarı çıkmayalım" Label5.Text = "Ders çalışalım" Else Label3.Text = "Bu gün hava çok soğuk değil" End If Çok şartlı IF Şartın birden çok olması durumlarında IF yapısının kullanım şekli birden çok satıra yayılacak şekilde, Elseif deyimleri, gerekiyorsa Else deyimi ve yapının kapatılmasını sağlayan deyimi ile birlikte olur. Bu yapıda, blokların yani Elseif alt yapılarının sayısı istenildiği kadar artırılabilir. 4

Kullanım : IF : IF şart THEN IF IF çalıştırılacak işlemgrubu4 Bu yapıda, birinci karşılaştırmada şart doğru (true) ise IF ile birinci IF arasındaki işlemgrubu1 çalıştırılır ve program akışı IF bloğunun sonunu belirleyen deyiminin bulunduğu satırdan sonraki satıra geçer. Birinci karşılaştırma yanlış (false), ikinci karşılaştırma doğru(true) ise işlemgrubu2 çalıştırılır ve program akışı yine deyiminin bulunduğu satırdan sonraki satıra geçer. Aynı mantık IF deyimlerinin bulunduğu bütün bloklar için yürütülür. IF bloklarından hiç biri doğru(true) sonuç üretmezse akış deyiminin bulunduğu bloğa geçer ve işlemgrubu4 çalıştırılır, daha sonra da deyiminden sonraki satırdan devam edilir. Dim x As Integer x = InputBox("Lütfen aldığınız notu giriniz") If x >= 0 And x <= 20 Then Label1.Text = "Çok kötü" ElseIf (x > 20 And x < 50) Then Label1.Text = "Kaldınız" ElseIf (x >= 50 And x < 80) Then Label1.Text = "Geçtiniz" ElseIf (x >= 80 And x <= 100) Then Label1.Text = "Pekiyi ile geçtiniz" Else Label1.Text = "Yanlış girdiniz" End If Bu if-elseif-else-end if yapısında x değişkeninin aldığı değere göre Label nesnesine değer aktarılmaktadır. X değişkeninin aldığı değer 0 ile 20 arasında ise label nesnesine Çok kötü, 21 ile 49 arasında ise Kaldınız, 50 ile 79 arasında ise Geçtiniz ve 80 ile 100 arasında ise Pekiyi ile geçtiniz değerleri aktarılmaktadır. X değişkeninin yukarıda belirtilenler dışında yani 0 dan küçük veya 100 den büyük herhangi bir değer alması durumunda ise Label nesnesine Yanış girdiniz ifadesi aktarılacaktır. 5

Hatalı Kullanımlar deyiminin kullanılmaması IF şart THEN IF IF çalıştırılacak işlemgrubu4 Şartın kullanılmaması IF THEN IF IF çalıştırılacak işlemgrubu4 IF den önce deyiminin kullanılması IF şart THEN IF IF çalıştırılacak işlemgrubu4 IIf() Fonksiyonu IIf fonksiyonu üç parametreden oluşan, birinci parametrede şartın ya da mantıksal bir ifadenin bulunduğu, ikinci ve üçüncü parametrelerde ise oluşacak durumların belirtildiği bir yapıya sahiptir. Şart ya da mantıksal ifade doğru(true) ise IIf() fonksiyonu ikinci parametrede belirtilen değeri işleyecek, yanlış (False) ise üçüncü parametrede belirtilen değeri geri döndürecektir. Yalnızca iki durum söz konusu olabilmektedir. Diğer durumlarda IIf fonksiyonunun kullanılması mümkün değildir. : IIF : IIF( Şart/İfade, Birinci durum, İkinci durum) 6

Dim x As Integer Dim sonuc As String x = InputBox("Hava sıcaklığını giriniz") sonuc = IIf(x < 0, "Hava çok soğuk", "Hava çok soğuk değil") MsgBox(sonuc) Bu IIF fonksiyonunun kullanımında x değeri 0 ın altında olursa sonuç değişkenine "Hava çok soğuk " bilgisi, x değişkenine 0 veya pozitif bir sayı atanırsa "Hava çok soğuk değil" bilgisi atanacaktır. Yukarıda belirtildiği gibi IIF fonksiyonu ile yapılan karşılaştırmalarda yalnızca iki durum söz konusu olabilmektedir. İkiden fazla ihtimalin bulunduğu durumlarda Choose fonksiyonu kullanılmalıdır. Choose() Fonksiyonu Bu fonksiyon ile birinci parametrede bir tamsayı değişken kullanılmakta ve bu değişkenin alabileceği değer dikkate alınarak fonksiyonda belirtilen farklı durumlardan herhangi bir tanesi işletilmektedir. Değer 1 den başlayarak tamsayı değerleri alabilmekte, bunu dışındaki değerleri dikkate almamaktadır. Değişkenin aldığı değer 1 ise 1.değer, 2 ise 2. değer vb. döndürülmektedir. : Choose : Choose(Değişken, Birinci durum, İkinci durum, Üçüncü durum,..) Dim ay As Integer Dim sonuc As String ay = InputBox("Yılın ay sırasını girin") sonuc = Choose(ay, "Ocak", "Şubat", "Mart", "Nisan", "Mayıs", _ "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık") MsgBox("Yılın " & ay & ". ayı " & sonuc) Bu Choose fonksiyonu ile ay değişkenine 1 ile 12 arasında tamsayı değerler girilmelidir. Aksi halde Choose fonksiyonu çalışmayacaktır. Ay değişkeni aldığı değere göre fonksiyonda kullanılan farklı durumlardan girilen ay değerinin sırasını dikkate alarak ilgili değeri döndürecektir. Örneğin ay değişkenine 4 girildiğinde sonuç değişkenine "Nisan" değeri aktarılmış olacaktır. 7

İç İçe IF i Kararların hiyerarşik bir yapı oluşturduğu durumlarda tek bir IF-ElseIF- End IF yapısı yeterli olamayabilir. Bu gibi durumlarda biden çok IF-ElseIF- End IF yapısı kullanılmalıdır. IF-ElseIF-End IF yapısının sayısının üst sınırı yoktur. İstenildiği kadar kullanılabilir. Ancak bu yapının iç içe çok fazla sayıda kullanılmasının kod yazımını ve kodun anlaşılabilirligini zorlaştıracağı unutulmamalıdır. IF-ElseIF-End IF yapısı birden çok kullanıldığında iç içe IF yapısı adını alır. Dolayısıyla bir IF-ElseIF-End IF ile birlikte ikinci bir IF-ElseIF-End IF yapısı kullanılacaksa ikinci yapı birini yapının içine yerleştirilmelidir. Yani ikinci yapı birinci IF değiminden sonra başlatılmalı ve End IF değiminden önce sonlandırılmalıdır. Aynı kural ikinci IF-ElseIF-End IF yapısından sonra oluşturulabilecek üçüncü ve dördüncü yapılar için de geçerlidir. : IF : IF şart THEN IF şart THEN.1.2 veya : IF şart THEN IF şart THEN.1.2 8

Dim cinsiyet As String Dim askdrm As String cinsiyet = InputBox("Lütfen cinsiyet giriniz...erkek için (E veya e), kız için(k veya k) giriniz") If cinsiyet = "E" Or cinsiyet = "e" Then askdrm = InputBox("Askerlik durumunu giriniz... Askerliğini _ yapanlar için (Y veya y) giriniz") If askdrm = "Y" Or askdrm = "y" Then MsgBox("Askerliğini yapmış") Else MsgBox("Askerliğini yapmamış") End If ElseIf cinsiyet = "K" Or cinsiyet = "k" Then MsgBox("Askerlikle yükümlü değil") Else MsgBox("Yanlış giriş yaptınız") End If Yukarıda verilen içi içe IF örneğinde önce cinsiyet sorgulanmaktadır. Cinsiyet için girilen değerin E veya e olması durumunda ikinci bir sorgulamaya ihtiyaç duyulmakta ve bu sorgulamayla da askerlik durumu öğrenilmektedir. Askerlik durumu için girilen değerin Y veya y olması durumunda "Askerliğini yapmış", aksi durumda Askerliğini yapmamış" değeri aktarılmaktadır. Cinsiyetin K veya k olması durumunda ikinci sorgulamaya gerek duyulmamakta ve ("Askerlikle yükümlü değil" değeri aktarıldıktan sonra program akışı End IF değiminden sonraki satıra geçmektedir. Cinsiyet değişkenine girilen değer yukarıda belirtilenler haricine bir değer olduğunda "Yanlış giriş yaptınız" değeri aktarılmakta ve akış yine End IF değiminden sonraki satıra geçmektedir. Select Case Yapısı Program akışının şarta bağlı olarak değiştirilmesini veya bir işlem grubunun şarta bağlı olarak çalıştırılmasını sağlayan diğer bir yapı Select Case yapısıdır. IF yapısına benzer ancak bir değişkenin aldığı birçok değere göre farklı komutların çalıştırılmasının gerektiği durumlarda daha avantajlıdır. Uzun ve karmaşık If-ElseIf-End If döngülerinde zaman zaman anlaşılabilirlik azalabilir. Hata kontrolü zorlaşabilir. Bunun yerine Select-Case yapısının kullanılması daha avantajlı olabilmektedir. 9

Select-Case yapısı kendisine gönderilen değeri yorumlayarak alt kod yapıları olan Case komutlarını kullanarak alternatif sonuçların elde edilebildiği bir kontrol değim grubudur. Select Case- deyim grubu işlev bakımından If-ElseIf-End If deyim grubuna benzemektedir. Özellikle çok sayıda If-ElseIf-End If yapısının kullanıldığı durumlarda bunun yerine Select Case yapısı tercih edilmelidir. Programlamada zaman zaman hem If-ElseIf-End If yapısının hem de Select Case yapısının birlikte kullanılmasının gerekli olduğu durumlar olabilir. Bu gibi durumlarda bir Select Case yapısı içerisinde diğer bir Select Case yapısı veya bir If-ElseIf-End If yapısı kullanılabilir. Select Case yapısı, Select Case deyimi ile başlar, deyimi ile sona erer. Select Case deyiminden sonra yapılacak karşılaştırmalarda kullanılacak bir kontrol değişkeni kullanılmaktadır. Daha sonra Case deyimi ile birlikte şartlar veya ifadeler belirtilmektedir. Select Case deyiminden sonra verilen kontrol deyimi Case deyimleri ile birlikte verilen şartlardan hangisi ile uyumlu olursa o Case yapısı içerisinde bulunan işlemgrubu çalıştırılacaktır. Daha sonra değişken ile uyum göstermeyen Case yapıları atlanarak program akışı deyiminden sonraki satıra geçecektir. Case yapılarında verilen şartlardan hiçbiri değişken ile uyumlu olmaz ise Case Else deyimine geçilir. Case Else deyimindeki işlemgrubu çalıştırıldıktan sonra program akışı yine deyiminin bulunduğu satırdan sonraki satıra geçer. : SELECT CASE : Select Case değişken Case şart1 Case şart2 Case şart3 Case Else çalıştırılacak işlemgrubu4 Case deyiminde şartların farklı kullanımları Her Case de Tek Şart Bu kullanımda Her Case deyimi için bir şart oluşturulur. Select Case deyiminde kullanılan değişken hangi Case şartına uygun olursa o Case deyimindeki işlem grubu çalıştırılır. 10

: SELECT CASE : Select Case değişken Case şart1 Case şart2 Case şart3 Dim sayi As Integer sayi = InputBox("1 ile 3 arası 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") Sayi değişkenine 1 atanırsa Case1 deki "Girdiğiniz sayı 1", 2 atanırsa Case2 deki "Girdiğiniz sayı 2", 3 atanırsa Case3 deki "Girdiğiniz sayı 3" mesajı görüntülenecektir. Her Case de Birden Çok Şart Bu kullanımda Her Case deyimi için birden çok şart oluşturulur. Select Case deyiminde kullanılan değişken, bir Case de belirtilen şartlardan herhangi biri ile uyumlu olursa o Case deyimindeki işlem grubu çalıştırılır. : SELECT CASE : Select Case değişken Case şart1, şart2, şart3 Case şart4, şart5 11

Dim iller As String iller = InputBox("Şehrinizin adını girin.") Select Case iller Case "Erzurum", "Erzincan", "Ağrı" MsgBox("Şehriniz Doğu Anadolu Bölgesindedir.") Case "Sivas", "Ankara" MsgBox("Şehriniz İç Anadolu Bölgesindedir.") İlleri değişkenine "Erzurum", "Erzincan", "Ağrı verilerinden herhangi biri atandığında Case1 ile uyumlu olarak "Şehriniz Doğu Anadolu Bölgesindedir." mesajı görüntülenecektir. Case1 de aynı anda üç şart birden karşılanabilmektedir. İlleri değişkenine "Sivas", "Ankara" verilerinden herhangi biri atandığında Case2 ile uyumlu olarak "Şehriniz İç Anadolu Bölgesindedir." mesajı görüntülenecektir. Case2 de aynı anda iki şart birden karşılanabilmektedir. Case de Belirli Aralıklar İçin Şart Bu kullanımda Case deyimi için şart başlangıç değeri ve şart bitiş değeri belirlenir. Select Case deyiminde kullanılan değişken, Case lerde belirtilen aralıklardan hangisiyle uyumlu olursa o Case deyimindeki işlem grubu çalıştırılır. : SELECT CASE : Select Case değişken Case şart1 To şart2 Case şart3 To Şart4 Case şart5 To şart6 Dim notlar As Double notlar = InputBox("Aldığınız notu girin.") Select Case notlar Case 0 To 49 MsgBox("Geçer not alamadınız") Case 50 To 100 MsgBox("Geçer not aldınız.") 12

Bu örnekte notlar değişkenine atanan değer 0 ile 49 aralığında olursa, birinci sırada verilen Case deyimi çalıştırılacak ve "Geçer not alamadınız")mesajı görüntülenecektir. Notlar değişkenine atanan değer 50 ile 100 aralığında olursa, ikinci sırada verilen Case deyimi çalıştırılacak ve "Geçer not aldınız" mesajı elde edilecektir. Case de IS Bu Case yapısında, is operatörü ve karşılaştırma operatörleri birlikte kullanılarak, değişkenin hangi şartlar aralığında olduğu ve hangi Case deyimine uygun olduğu belirlenmektedir. is operatörü (>,<,>=,<=,= ) gibi operatörlerden uygun olanı ile değişkenin hangi değere sahip olduğunun belirlenmesini sağlar. Bu sayede ilgili Case deyimindeki işlem grubunun çalıştırılması sağlanmış olur. : SELECT CASE : Select Case değişken Case is<=şart1,is=şart2 Case is=şart3,is>=şart4 Case şart3>şart5 Dim notlar As Double notlar = InputBox("Aldığınız notu girin.") Select Case notlar Case Is < 0, Is > 100 MsgBox("Yanlış girdiniz") Case Is <= 20 MsgBox("Kötü") Case Is < 50 MsgBox("Kaldınız") Case Is >= 50 MsgBox("Geçtiniz") Bu örnekte notlar değişkenine atanan değer 0 dan küçük, 100 den büyük ise "Yanlış girdiniz), 0 ile20 aralığında ise "Kötü", 21 ile 49 aralığında ise "Kaldınız" mesajı görüntülenecektir. Değişken 50 ile 100 aralığında bir değer alırsa geriye "Geçtiniz" değeri döndürülecektir. 13

Özet Karar, programlamanın en önemli özelliklerindendir. Bir programın geliştirilmesi sırasında oluşabilecek farklı durumlara göre farklı kararların verilmesi kaçınılmazdır. Bu kararların oluşturulabilmesi için kontrol deyimleri denilen ve birçok programlama dilinde benzerlik gösteren deyimler kullanılmaktadır. Visual Basic.NET programlama dili esas alınarak kullanılan deyimlerin başında IF-ENDIF deyim grubu ve Select Case- deyim grubu gelmektedir. IF deyim grubu şartın tek veya çok olmasına göre farklı şekillerde kullanılabilmetedir. Selcet Case deyim grubu da Case deyimlerindeki esnek kullanımlar sayesinde yaygın olarak kullanılan önemli bir karar yapısıdır. 14