Anasayfa C Dili Switch-Case Yapısı

C Dili Switch-Case Yapısı

Okan

Bir önceki derste (C Dili İf-Else Yapıları) İf, else-if, yapılarını kullanarak birden fazla durumu veya şartı kontrol ettik. Şimdi de aynı durumu switch-case yapısı ile yapacağız.

Switch-case yapısı da if, else-if yapısıyla aynı mantıkta çalışır. Kısacası switch-case yapısı, bir değişkenin farklı durumları için işlemler yapmasını sağlar. Eğer hiçbir şart sağlanmazsa da en son belirttiğimiz default işlemini yapar.

Şimdi bir önceki derste İf, else-if yapısı ile yaptığımız basit hesap makinesini switch-case yapısını kullanarak yapalım.

#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);
	
	switch(islem){
		case 1:
			printf("Toplama isleminin sonucu : %d",sayi1 + sayi2);
			break;
		case 2:
			printf("Cıkarma isleminin sonucu : %d",sayi1 - sayi2);
			break;
		case 3:
			printf("Bolme isleminin sonucu : %f", (float) sayi1 / (float) sayi2);
			break;
		case 4:
			printf("Carpma isleminin sonucu : %d", sayi1 * sayi2);
			break;
		default:
			printf("Lutfen gecerli bir sayi giriniz..");
	}
}

Bu örnekte, önce kullanıcıdan 2tane sayi girmesini istiyoruz. Daha sonra kullanıcı işlem değişkenini giriyor. Program işlem değişkeninin duruma göre uygun olan case ifadesini çalıştırır ve break ifadesini gördüğü zaman switch yapısını sonlandırmış olur. Eğer hiçbir şartı sağlamazsa da default komutunu çalıştırır.

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

switch-case-kod-1

Şimdi de daha farklı bir örnek yapalım.

Switch-case yapısını kullanarak basit bir ATM yapalım. Bu ATM de sadece para çekme, para yatırma ve bakiye sorgula işlemleri olsun. Her bir durum için farklı komutlar yazarak bu yapıyı kuracağız.

Kodu aşağıdaki gibidir :

#include <stdio.h>

main()
{
	int bakiye = 1000;
	int islem,tutar;
	
	printf("Bakiyeniz: %d",bakiye);
	printf("\n\n**** ISLEMLER ****\n");
	printf("1. Para Cekme\n");
	printf("2. Para Yatirma\n");
	printf("3. Para Bakiye Sorgulama\n");
	printf("4. Kart Iade\n");
	
	printf("Isleminizi seciniz : ");
	scanf("%d",&islem);
	
	switch(islem){
		case 1:
	    	       printf("Bakiyeniz : %d\n",bakiye);
	    	       printf("Cekmek istediginiz tutari giriniz : ");
	    	       scanf("%d",&tutar);
	    	       if(tutar>1000){
		           printf("Yetersiz bakiye tekrar giriniz !!");
	    		   scanf("%d",&tutar);
			}
	    	         bakiye -= tutar;
	    	         printf("Yeni Bakiyeniz : %d",bakiye);
	    	         break;
		case 2:
	    	         printf("Bakiyeniz : %d\n",bakiye);
	    	         printf("Yatirmak istediginiz tutari giriniz : ");
	    	         scanf("%d",&tutar);
	    	         bakiye += tutar;
	    	         printf("Yeni Bakiyeniz : %d",bakiye);
	    	         break;
		case 3:
	    	         printf("Bakiyeniz : %d\n",bakiye);
	    	         break;	
		case 4:
	   	         printf("Kartinizi almayi unutmayin!");
	                 break;					
	}

}

Burada da yukarıda yaptığımız gibi temel switch-case mantığını kullanarak her bir durum için farklı komutlar yazdık.

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

switch-case-kod-2

Kod kısmanda da gördüğünüz gibi her case ifadesinden sonra break komutunu kullandık. Break komutu ilgili case komutunu gerçekleştirdikten sonra switch yapısından çıkmamızı sağlar. Kısacası eğer brek komutunu kullanmazsak koşulun sağlandığı case ifadesine girdikten sonra altındaki ifadeleri de çalıştırır.

Detaylı anlatım için C Dili Döngülerde Break ve Continue Komutları dersine bakabilirsiniz.

Switch-case yapısını kullanarak yukarıdakiler gibi onlarca örnek yapabiliriz. Konuyu örneklerle pekiştirmek için  C Programlama Dili Örnekleri sayfasında 12 ve 51. soruları ve İf-else örneklerini switch-case yapısı kurarak çözebilirsiniz.

Yorum Yap

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

Gizlilik Politikası