Anasayfa C Dili İf-Else Yapıları

C Dili İf-Else Yapıları

Okan

Hayatımızda sıklıkla farklı konular üzerinde karar veriyoruz. Karar vermek için de seçeneklerimizi tartıyoruz. Aynı şekilde bazı durumlarda program içerisinde iki veya daha fazla değerin ya da durumun karşılaştırılması gerekebilir.

Programımızın içerisindeki karşılaştırmayı da;

yapıları ile yapıyoruz.

İf Yapısı

İf ifadesi en çok kullanılan sorgu komutlarından birisidir. Eğer bu sorgudaki şartımız sağlanırsa if bloğunun içerisindeki komutlar çalışır, sağlanmadığı takdirde if bloğunu atlayıp programın çalışmasını sürdürür.

Aşağıdaki örnekte basit bir if yapısı kullanılmıştır.

#include <stdio.h>

main()
{	
	int a = 15;
	int b = 25;
	
	if(a > b){
		printf("A değeri B değerinden büyüktür.");	
	}
	printf("Kod Bloklari");
}

Yukarıdaki örnekte parantezin içerisine yazdığımız değer sağlanmadığı için if bloğunu atlayarak 11.satırdan program çalışmaya devam ediyor.

Programın çıktısı şu şekilde oluyor:

kosullar-if-else-1

Şimdi de if bloğunu çalıştıracak bir örnek yapalım.

#include <stdio.h>

main()
{
	int a = 15;
	int b = 25;

	if(b > a){
		printf("B degeri A degerinden buyuktur.\n");
	}
	printf("Kod Bloklari");
}

Yukaridaki örnekte ise if komutundaki şartımızı sağlandığı için program if bloğunun içine girer ve program çalışmasını sürdürür.

Bu kodun da ekran çıktısı şu şekildedir:

kosul-if-else-2

İf yapısı en basit haliyle bu şekilde çalışır. Şimdi de İf-else yapısına geçelim.

İf-else Yapısı

İf-else yapısında if yapısından farklı olarak, eğer sorgudaki şartımız sağlanmazsa başka bir komut veya komutlar çalıştırılır.

Örnek olarak kullanıcıdan sınav notunu girmesini isteyeceğiz. Notu 50 den büyükse “Dersi Geçtiniz” yazdırmasını istiyoruz. Eğer şartı sağlamazsa da “Dersten kaldınız” yazdırmak istiyoruz. Bunun için else bloğunu kullanacağız.

Bu örneği programımızda yazarak çalıştıralım.

#include <stdio.h>

main()
{
	int notu;
	printf("Sinav notunuzu giriniz: ");
	scanf("%d",¬u);

	if(notu > 50){
		printf("Dersten gectiniz.");
	}
	else{
		printf("Dersten kaldiniz.");
	}
}

Bu programda eğer kullanıcının girdiğini not 50 den büyükse if bloğunu çalıştırıp, if-else yapısından çıkış yaparak program çalışmasını sürdürecek. Kullanıcının girdiği not eğer 50 den büyük değilse de else bloğunu çalıştıracak.

Bu kodun çıktısı aşağıdaki gibidir:

kosul-kod-3

Şimdi de koşul yapılarının en son yapısı if, else-if, else yapısına geçelim.

İf, else-if, else Yapısı

Eğer sorgumuzda kontrol edilmesi gereken durumlar birden fazla ise bu sorguda İf, else-if, else yapısını kullanmamız gerekir.

Bu yapıyı daha iyi bir şekilde anlamak için yukarıdaki örnekten devam edelim. Yukarıda sadece öğrencinin dersten geçip geçmediğini sorgulamıştık.

Bu örnekte ise, öğrencinin hangi harf notuyla geçtiğini sorgulayacağız. Bunu yapmak için yukarıda da bahsettiğim gibi birden fazla durumu karşılaştırmamız gerekiyor. Bunun için bu örneği if, else-if, else yapısını kullanarak yapmamız gerekir.

#include <stdio.h>

main()
{
	int notu;
	printf("Sinav notunuzu giriniz: ");
	scanf("%d",¬u);
	
	if(notu > 90){
		printf(" AA ile dersi gectiniz.");
	}
	else if(notu > 85){
		printf("BA ile dersi gectiniz.");
	}
	else if(notu > 80){
		printf("BB ile dersi gectiniz.");
	}
	else if(notu > 75){
		printf("CB ile dersi gectiniz.");
	}
	else if(notu >50){
		printf("Kosullu gectiniz");
	}
	else{
		printf("Dersten kaldiniz..");
	}
}

Bu sorguda program yukarıdan aşağıya doğru koşulları tek tek kontrol eder. Eğer koşullardan biri sağlanırsa o koşulun içerisindeki komutları çalıştırıp sorguyu sonlandırır.

Hiçbir koşul sağlanmazsa da else yapısını çalıştırır.

Kodun ekran çıktısı aşağıdaki gibidir:

kosul-kod-4

Son yapımızda bu şekildedir.

Şimdi de son olarak buraya kadar öğrendiklerimizle basit bir hesap makinesi yapalım. Kullanıcıdan 2 tane sayı aldıktan sonra tekrardan kullanıcıya hangi işlemi yapmasını isteyeceğini soracağız. Kullanıcının seçimine göre sayıların üzerinde işlemler yapacağız.

Kod aşağıdaki gibidir.

#include <stdio.h>

main()
{
	int sayi1,sayi2;
        int islem;
	
	printf("1.Sayiyi giriniz:");
	scanf("%d",&sayi1);
	printf("2.Sayiyi giriniz: ");
	scanf("%d",&sayi2);
	
	printf("\n\n1.Toplama\n");
	printf("2.Cikarma\n");
	printf("3.Bolme\n");
	printf("4.Carma\n");
	
	printf("\nIslemi seciniz:");
	scanf("%d",&islem);
	
	if(islem == 1){
		printf("Toplama isleminin sonucu : %d",sayi1 + sayi2);
	}
	else if(islem ==2){
		printf("Cıkarma isleminin sonucu : %d",sayi1 - sayi2);
	}
	else if(islem ==3){
		printf("Bolme isleminin sonucu : %f", (float) sayi1 / (float) sayi2);
	}
	else if(islem ==4){
		printf("Carpma isleminin sonucu : %d", sayi1 * sayi2);
	}
	else{
		printf("Lutfen gecerli bir sayi giriniz..");
	}
}

Yukarıdaki kodda bölme işlemin de float kullanılmasının sebebi sonucun tam olarak doğru çıkması içindir. Veri tiplerini bilmiyorsanız C Dili Veri Tipleri ve Değişkenler sayfasını inceleyebilirsiniz.

Kodun çıktısı şu şekildedir:

kosul-kod-5

İf-else yapılarını kullanarak çok fazla örnek yapabiliriz. Konuyu örnekler yaparak daha iyi kavramak için C Programlama Dili Örnekleri sayfasında 8 ‘ den 11. soruya kadar olan örnekleri çözebilirsiniz.

Yorum Yap

Bu web sitesi deneyiminizi geliştirmek için çerezler kullanmaktadır. Kabul Et Tamamını Oku

Gizlilik Politikası