Visual Studio C# Dersleri | Visual Studio Kurulumu | C# Programlama Dersleri
If-Else Deyimi
If deyimi bir programın akışını kontrol etmek için kullanılır. Belirli bir şarta göre yapılması istenilen işlemler, If-Else deyimi kullanılarak gerçekleştirilir. If-Else deyiminin kullanımı ve akış diyagramları ile gösterimi ise şu şekildedir.
Kullanımı:
if(koşul) {
Koşul doğruysa yapılacak işlemler;
}
else {
Koşul yanlışsa yapılacak işlemler;
}
Yukarıdaki diyagramdan da görüleceği üzere, programın akışı If deyiminin olduğu satıra geldiğinde parantezler içerisindeki KOŞUL ifadesi çalıştırılır. Bu koşul ifadesi true (Doğru) yada false (Yanlış) olmak üzere bir değer üretmektedir.
Şayet koşulumuz doğruysa (true) programımızın akışı mavi renkle gösterilen doğruysa kısmından devam edecek ve kırmızıyla gösterilen yanlışsa kısmına uğramayacaktır. Eğer koşulumuz yanlışsa (false) bu sefer programımız yanlışsa kısmından kırmızıyla belirtilen yoldan devam edecektir.
Not 1: Eğer programımızın akışında sadece koşulun doğru olmasına bağlı işlem yapılması isteniyor, koşulun yanlış olduğu durumlarda işlem yapılması istenmiyorsa Else bloğu program içerisinde hiç kullanılmaz.
Kullanımı:
if(koşul) {
Koşul doğruysa yapılacak işlemler;
}
Not 2: Eğer If veya Else’den sonra sadece bir komut yazılacak ise küme parantezleri ({}) kullanılmayabilir. Kullanımı:
if(koşul)
Koşul doğruysa yapılacak işlemler;
else
Koşul yanlışsa yapılacak işlemler;
Örnek: Klavyeden yaşı girilen kişinin ehliyet alıp alamayacağını belirten programı yazınız. Bu örneğimizde sayıların karşılaştırılmasını inceleyelim.
Console.Write("Yaşınızı giriniz: ");
int yas = Convert.ToInt32(Console.ReadLine());
if (yas < 18)
Console.WriteLine("Yaşınız 18’den küçük olduğu için ehliyet alamazsınız");
else
Console.WriteLine("Ehliyet alabilecek yaştasınız.");
Yukarıdaki uygulamayı aşağıda verilen değerler için tek tek deneyiniz ve ekran çıktılarını yanlarındaki boş kısma yazınız.
Eşitlik bakımından değişkenleri karşılaştırmak için = = operatörünü kullandığına, özellikle dikkat edin. Bu amaç için = operatörünü kullanmayınız. Tek bir = operatörü, değişkenleri atamak için kullanılır.
Örnek : “Ünlü şairimiz Mehmet Akif’in soyadı nedir?” sorusunu kullanıcıya soran cevabını isteyen programı yazınız. Bu örneğimizde metinsel ifadelerin karşılaştırılmasını inceleyelim.
Console.Write("Ünlü şairimiz Mehmet Akif'in soyadı nedir?\nCevabınız :");
string cevap = Console.ReadLine();
if(cevap=="Ersoy") {
Console.Write("Tebrikler bu sorumuza doğru cevap verdiniz...");
}
else {
Console.WriteLine("Malesef yanlış cevap");
}
Console.ReadLine();
Not 3: Bazı programlama dilleri büyük/küçük harf duyarlı bir dil olduğu için “Ersoy”, “ersoy” veya “ERSOY” cevaplarından yalnızca “Ersoy” cevabını kabul edecektir.
If koşul deyimlerde zaman zaman birden fazla koşula bağlı bir takım işlemler yapmamız gerekebilir. Kullanımı:
VE ( && ) bağlacı ile
if((koşul1) && (koşul2)) {
koşul1 ve koşul2 doğruysa yapılacak işlemler;
}
else {
koşullardan en az birisi veya her ikisi de yanlış ise yapılacak işlemler;
}
VEYA ( || ) bağlacı ile
if((koşul1) || (koşul2)) {
koşul1 veya koşul2’den en az birisi veya her ikisi de doğruysa yapılacak işlemler;
}
else {
koşullardan her ikisi de yanlış ise yapılacak işlemler;
}
Örnek: Klavyeden girilen sayının hem 3’e hem de 5’e kalansız bölünüp bölünemediğini ekrana yazan programı yazınız.
Console.Write("Bir sayı giriniz:");
int sayi = Convert.ToInt32(Console.ReadLine());
if((sayi % 3 == 0) && (sayi % 5 ==0))
Console.WriteLine("{0} sayısı hem 3'e hem de 5'e kalansız bölünebilir",sayi);
else
Console.WriteLine("{0} sayısı hem 3'e hem de 5'e kalansız bölünemez", sayi);
Örnek : Klavyeden girilen cinsiyet ve yaş bilgilerine göre, kişinin askere gidip gidemeyeceğini yazan programı yazınız.
char cinsiyet;
int yas;
Console.Write("Lütfen cinsiyetinizi giriniz (E/K):"); cinsiyet=Convert.ToChar(Console.ReadLine());
Console.Write("Lütfen yaşınızı giriniz:");
yas =Console.Read(); if (((cinsiyet == 'E') || (cinsiyet=='e')) && (yas >= 20)) { Console.WriteLine("Askere Gidebilir"); }
else {
Console.WriteLine("Askere Gidemez");
}