Anasayfa Java Dili Switch-Case Yapısı

Java Dili Switch-Case Yapısı

Okan

Bir önceki derste İf, else-if, else yapısını kullanarak, birden fazla durumu veya şartı kontrol etmiştik. Switch-case yapısı da if, else-if, else yapısıyla aynı mantıkla çalışıyor.

Kısacası switch-case yapısı değişkenin farklı durumları için farklı işlemler yapar. Eğer hiçbir şart sağlanmazsa da en son belirttiğimiz “default” ifadesini gerçekleştirir.

Bu yapıyı program üzerinde inceleyerek daha anlaşılır hale getirelim.

Bir önceki derste İf-else yapıları ile yaptığımız basit hesap makinesini switch-case yapısını kullanarak yapalım.

Bu örnekte, önce kullanıcıdan işlem değişkenini alacağız. Sonra bu işlem değişkeninin farklı değerleri için farklı komutlar yazacağız.

Kodu şu şekildedir:

package kodbloklari.com;

import java.util.Scanner;

public class hesapmakinesi {
	
	public static void main(String[] args) {
		
		Scanner scan = new Scanner(System.in);
		
		int sayi1,sayi2;
		int islem;
		
		System.out.print("1.Sayıyı giriniz: ");
		sayi1 = scan.nextInt();
		System.out.print("2.Sayıyı giriniz: ");
		sayi2 = scan.nextInt();
		
		System.out.println("\n1.Toplama");
		System.out.println("2.Çıkarma");
		System.out.println("3.Bölme");
		System.out.println("4.Çarpma");
		
		System.out.print("İslemi seçiniz: ");
		islem = scan.nextInt();
		
		switch(islem) {
		case 1:
			System.out.println("Toplama işleminin sonucu = " + (sayi1 + sayi2));
			break;
		case 2:
			System.out.println("Çıkarma işleminin sonucu = " + (sayi1 - sayi2));
			break;
		case 3:
			System.out.println("Çarpma işleminin sonucu = " + ((float)sayi1 / sayi2));
			break;
		case 4:
			System.out.println("Çarpma işleminin sonucu = " + (sayi1 * sayi2));
			break;
		default:
			System.out.println("Yanlış seçim yaptınız !!");
		}
	}
}

Önce kullanıcıdan “islem” değişkenini aldık. (Java kullanıcıdan input alma.) Daha sonra da kullanıcın seçeceği değerler için farklı komutlar yazdık.

Herhangi bir şart sağlandığı taktirde program, ilgili case ifadesinin içindeki komutları gerçekleştirir ve break komutu ile switch yapısını sonlandırır.

Eğer hiçbir şart sağlanmazsa da switch-case yapının en altındaki “default” komutunu çalıştırarak yapıyı sonlandırır. “default” değeri de yazılmamışsa hiç bir komut çalıştırılmadan döngü sonlandırılır.

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

switch-case

Eğer break deyimini kullanmazsak, program koşulun sağlandığı case ifadesi ile birlikte altındaki case ifadelerini çalıştırır. Örneğin:

package kodbloklari.com;

import java.util.Scanner;

public class hesapmakinesi {
	
	public static void main(String[] args) {
		
		Scanner scan = new Scanner(System.in);
		
		int sayi1,sayi2;
		int islem;
		
		System.out.print("1.Sayıyı giriniz: ");
		sayi1 = scan.nextInt();
		System.out.print("2.Sayıyı giriniz: ");
		sayi2 = scan.nextInt();
		
		System.out.println("\n1.Toplama");
		System.out.println("2.Çıkarma");
		System.out.println("3.Bölme");
		System.out.println("4.Çarpma");
		
		System.out.print("İslemi seçiniz: ");
		islem = scan.nextInt();
		
		switch(islem) {
		case 1:
			System.out.println("Toplama işleminin sonucu = " + (sayi1 + sayi2));
			//break;
		case 2:
			System.out.println("Çıkarma işleminin sonucu = " + (sayi1 - sayi2));
			//break;
		case 3:
			System.out.println("Çarpma işleminin sonucu = " + ((float)sayi1 / sayi2));
			//break;
		case 4:
			System.out.println("Çarpma işleminin sonucu = " + (sayi1 * sayi2));
			//break;
		default:
			System.out.println("Yanlış seçim yaptınız !!");
		}
	}
}

Gördüğünüz gibi hiçbir case ifadesinde break deyimini kullanmadığım için şartın sağlandığı ifadeye girdikten sonra alt satırlarındaki kodu da çalıştıracaktır.

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

switch-case

Detaylı anlatım için Döngülerde Break ve Continue Deyimleri sayfasını inceleyebilirsiniz.

Şimdi de aynı yapıyı kullanarak daha farklı bir örnek yapalım.

Switch-Case İle ATM

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 yapımızı oluşturalım.

ATM örneğinin kodu aşağıdaki şekildedir:

package kodbloklari.com;

import java.util.Scanner;

public class atm {
	public static void main(String[] args) {
		
		Scanner scan = new Scanner(System.in);
		
		int bakiye = 1000;
		int islem,tutar;
		
		System.out.println("Bakiyeniz = " + bakiye);
		System.out.println("\n**** İŞLEMLER ****");
		
		System.out.println("1. Para Çekme");
		System.out.println("2. Para Yatırma");
		System.out.println("3. Bakiye Sorgulama");
		System.out.println("4. Kart İade");
		
		System.out.print("İsleminizi seçiniz: ");
		islem = scan.nextInt();
		
		switch(islem) {
		case 1:
			System.out.println("Bakiyeniz = " + bakiye);
			System.out.print("Çekmek istediğiniz tutarı giriniz: ");
			tutar = scan.nextInt();
			if(tutar > 1000) {
				System.out.println("YETERSİZ BAKİYE !!!");
			}		
			bakiye -= tutar;  // bakiye = bakiye - tutar
			System.out.println("Yeni bakiyeniz = " + bakiye);
			break;
		case 2:
			System.out.println("Bakiyeniz = " + bakiye);
			System.out.print("Yatırmak istediğiniz tutarı giriniz: ");
			tutar = scan.nextInt();
			bakiye += tutar;
			System.out.println("Yeni bakiyeniz: " + bakiye);
			break;
		case 3:
			System.out.println("Bakiyeniz = " + bakiye);
			break;
		case 4:
			System.out.println("Kartınızı almayı unutmayınız.");
			break;
		
	   }
    }
}

Hesap makine örneği gibi farklı durumlar için farklı komutlar yazdık ve kullanıcın seçimine göre bu komutlar gerçekleştirilecek.

32. satırdaki atama işleminin detaylı anlatımı için Java Dili Operatörler sayfasını inceleyebilirsiniz.

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

hesap makinesi

Switch-case yapısını kullanarak yukarıdakiler gibi onlarca örnek yapabiliriz. Konuyu örneklerle pekiştirmek için  Java Dili Örnekleri sayfasını ziyaret edebilirsiniz.

Yorum Yap

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

Gizlilik Politikası