İlginizi Çekebilir
Java Kontrol Yapıları
  1. Ana Sayfa
  2. Java
  3. Java’da Kontrol Yapıları

Java’da Kontrol Yapıları

Bir program oluştururken bazı şartlar doğrultusunda, belirlediğimiz bir olayın gerçekleşmesini isteyebiliriz. Bu isteklerimizi gerçekleştirebilmek için Java’da kontrol yapıları konusunu bu yazımda sizlere anlatacağım. Basit bir sınav not programı düşünelim. Öğrenciler, programa girecekleri vize ve final notları sonucunda ortaya çıkacak ortalama notu ile bir harf sistemine tabi tutulmasını istersek bunu java’da kontrol yapıları kullanarak gerçekleştiririz.

Java’da Kontrol Yapıları

Java’da kontrol yapıları 3’e ayrılır. Bunlar;

  • if-else kontrol yapısı,
  • if-else-if kontrol yapısı,
  • switch kontrol yapısı.

Yapacağımız program için hangi kontrol yapısı uygun oluyorsa, onu tercih ederiz. Başlıklar halinde Java’da kontrol yapılarını anlatırken vereceğim örnek tarzlarına ve akış şeması görsellerine göre bu kararı daha kolay verebilirsiniz.

1- If-Else Kontrol Yapısı

Teorik olarak anlatmam gerekirse, if-else kontrol yapısı istenilen şartlar sonucunda işlem eğer doğru bir sonuç veriyorsa bu işlemleri çalıştır, sağlamıyorsa bu işlemleri çalıştır dememize yardımcı olan yol gösterici bir yapı olarak anlatabilirim. Bu anlatım için tekrardan bir öğrenci not sistemini ele alalım. Öğrencinin not ortalaması 88’den yukarı ise sisteme “AA”, aşağı durumda ise “FF” girmesini isteyelim. Bu koşulumuzun kontrolünü sağlamak için if-else kullanabiliriz. İstediğimiz koşul doğru olduğunda yani true döndüğünde if bloğuna girer, false döndüğünde ise else bloğuna girer ve yapmasını istediğimiz işlemleri gerçekleştirir.

Java'da if-else kontrol yapısı
Java if else kontrol yapısı

Yukarıda verdiğim örnekte öğrenci not sistemini ele almıştık. Bu not sisteminde ortalama değişkenine vereceğimiz değere göre kontrol işlemi gerçekleştirilecek, kontrol sonucunda gerekli bloğu tercih edip oradaki işlemleri gerçekleştirecek.

// Değişken Tanımlamalarımız:
int ortalama=89;
// If-Else Kontrol Yapıları:
if(ortalama>=88)
System.out.println("Genel Dereceniz Başarılı.\nHarf Notunuz: AA");
else
System.out.println("Genel Dereceniz Başarısız.\nHarf Notunuz: FF");

Benim bu yazdığım örnek üzerinde değişkenimize 89 değerini tanımladım. Bu değer sonucunda kontrol işleminde ilk şartımızı sağladığı için ekranımıza “Genel Dereceniz Başarılı. Harf Notunuz: AA” şeklinde çıktı verecektir. Eğer siz bu if-else kontrol yapısı içerisinde tek bir ifade gerçekleştirmek istemiyorsanız, döngüyü oluştururken {} şeklinde köşeli parantez kullanmanız gerekmektedir. Bunun da bir örneği şu şekilde olacaktır:

// Değişken Tanımlaması:
int ortalama=85;
if(ortalama>=88){
System.out.println("Harf Notunuz: AA");
}
else{
System.out.println("Başarılı Olabilimek İçin "+(88-ortalama) +" Puan Eksiksiniz.");
System.out.println("Harf Notunuz: FF");
}

Kod Çıktısı:

Java'da kontrol yapıları
Java if-else kontrol yapıları

İlk örneğimiz için tek bir ifade isteğinde bulunduğumuz için süslü parantez içerisinde if-else kontrol yapımızı oluşturmadık. İfade olarak bahsettiğim, sonuna noktalı virgül getiren her bir kod satırıdır.
Değişkenler içerisinde kullanacağımız değerleri kendimiz vermek yerine, kullanıcılardan da alabiliriz. Bu işlemi yapabilmek için Scanner sınıfı kullanabiliriz.
Scanner sınıfını anlayabilmeniz için örnek kod dizisi işe şu şekilde olacaktır:

import java.util.Scanner; 

public class Main {
    public static void main(String[] args) {
        // Değişken Tanımlaması:
        int vizenotu,finalnotu;
        double ortalama;
        // Scanner Sınıfını Programımıza Tanıtıyoruz:
        Scanner scanner = new Scanner(System.in);
        System.out.print("Vize Notunu Girin:");
        vizenotu=scanner.nextInt();
        System.out.print("Final Notunu Girin: ");
        finalnotu=scanner.nextInt();
        ortalama=(vizenotu*0.4)+(finalnotu*0.6);
        if(ortalama>=60){
            System.out.println("---\nOrtalamanız: "+ortalama);
            System.out.println("Ders içerisinde başarılısınız.");
        }
        else{
            System.out.println("---\nOrtalamanız: "+ortalama);
            System.out.println("Ders içerisinde başarılı değilsiniz.");
        }

    }
}

Kod Çıktısı:

Java'da kullanıcıdan veri alarak kontrol yapılarında sorgulama işlemi.
Java’da Scanner Sınıfı ile if-else kullanımı

2- If-Else-If Kontrol Yapısı

Java’da if-else kontrol yapısı anlatırken son verdiğim örnek üzerinde 2 adet şartımız bulunmaktaydı. Biz bu şartları arttırarak çıkan not ortalamasına göre başarılı veya başarılı değil de doğrudan harf notunu kullanıcıya göstermek istediğimiz zaman bize 2 koşul yeterli gelmeyecektir. Bir üniversite için ortalama 8 tür harf olduğunu düşünürsek 8 adet kontrol yapısı oluşturmamız gerekir. Birden fazla kontrol gerçekleştireceğimiz için de Java’da if-else-if kontrol yapılarını kullanacağız. Konuyu daha iyi anlayabilmeniz için yine not sistemi örneği üzerinden devam edelim.

// Değişken Tanımlaması:
int ortalama=72;
// if-else-if Kontrol Yapıları:
if(ortalama>=88&& ortalama<100)
System.out.println("Harf Notu: AA");
else if(ortalama>=75 && ortalama<88)
System.out.println("Harf Notu: BA");
else if(ortalama>=60 && ortalama<75)
System.out.println("Harf Notu: BB");
else
System.out.println("Geçersiz Bir Ortalama Değeri Girdiniz.");

Bu örnek üzerinde birden fazla ihtimalimiz bulunduğu için if-else-if yapısını tercih ettik. Şimdiye kadar vermiş olduğum örnekler üzerinde büyük eşitse (>=), küçük eşitse (<=) gibi şartlar koyduk ama Java’da Operatörler konusunda anlattığım operatör türlerini istediğiniz kontrol yapısı için tercih edebilirsiniz. Java’da switch kontrol yapılarına geçmeden önce ufak bir not ve bu not hakkında bir örnek eklemek istiyorum.

// Değişken Tanımlaması:
int bankamizdakipara=500,cekmekistedigimiz=200;
// İç içe if kontrol yapısı oluşturma.
if(bankamizdakipara!=0 && bankamizdakipara>0) {
if (cekmekistedigimiz <= bankamizdakipara) {
bankamizdakipara = bankamizdakipara - cekmekistedigimiz;
System.out.println(cekmekistedigimiz+"TL Hesabınızdan Çekilme İşlemi Gerçekleştirildi.\n"+"Hesabınızda Kalan Para: "+ bankamizdakipara);
}
}

Kod Çıktısı:

Java dilinde iç içe if sorgulama işlemi
Java’da iç içe if örneği

3- Switch Kontrol Yapısı

Java’da switch kontrol yapısı, if-else kontrol yapısının bir alternatifi olarak oluşturulmuştur. Uzun sorgulamalarda spagetti şeklinde uzun uzun else if şartları koymak yerine, bunu tek bir switch kontrolü ile gerçekleştirebiliriz. Fakat net bir değeri olmayan kontrol yapıları için switch yapısı uygun değildir.
Switch kontrol yapısı belirli bir aralıklar arasında kontrol gerçekleştirmez, doğrudan değer kontrolü gerçekleştirir. Switch kontrol yapılarını kullanarak günlere göre, işlem ataması yapabiliriz. Bu işlemleri if-else kontrol yapıları ile gerçekleştirmemizde mümkün ama switch yapısına göre daha uzun bir kod satırı ile uğraşmamız gerekebilir. Switch kontrol yapısının akış şeması şu şekildedir:

Java'da switch-case akış şeması
Java switch akış şeması

Java’da Switch kontrol yapılarını daha iyi anlayabilmemiz için değişkene vereceğimiz değer haftanın hangi gününe denk geldiğini ekranımıza çıktı olarak vermesini sağlayacak bir örnek oluşturalım.

// Değişken Tanımlaması:
int haftaningunu=7;
// Switch Kontrol Yapısı:
switch (haftaningunu){
case 1:System.out.println("Haftanın Günü: Pazartesi");
break;
case 2:System.out.println("Haftanın Günü: Salı");
break;
case 3:System.out.println("Haftanın Günü: Çarşamba");
break;
case 4:System.out.println("Haftanın Günü: Perşembe");
break;
case 5:System.out.println("Haftanın Günü: Cuma");
break;
case 6:System.out.println("Haftanın Günü: Cumartesi");
break;
case 7:System.out.println("Haftanın Günü: Pazar");
break;
default:System.out.println("Tanımsız Bir Değer Girdiniz.");
break;
}

Yukarıda vermiş olduğumuz örnek üzerinde değişkenimiz 7 değerine sahiptir bu yüzden ekranımıza “Haftanın Günü: Pazar” şeklinde çıktı verecektir.. Değişkenimiz içerisinde bulunan değer hangi koşula eşleştiğini bulmak için tek tek sorgulamaya başlıyor ve koşul sağlandığı takdirde ilgili case içerisindeki kod satırlarını işledikten sonra break komutuna takılarak döngüden ayrılıyor. Break komutunu kullanmasaydık peki kod çıktısında bizi ne karşılayacaktı gelin birlikte inceleyelim.

//Değişken Tanımlaması:
String websitesi="emrecelen";
switch (websitesi){
case "emrecelen":
System.out.println("İsim: Emre\nSoyisim: Çelen\nWeb Sitesi: emrecelen.com.tr\nJava <3");
case "breakyok":
System.out.println("Break komutu koymadığımız zaman ekrana bu metinde çıktı verir.");
break;
default:
System.out.println("Tanımsız bir değer girdiniz.");
break;
}

Kod Çıktısı:

Yazılım dillerinde break komutunun çalışma mantığı
Switch kontrol yapısında break kullanımı

Kod çıktısı için paylaştığım görselde gördüğünüz gibi ilk case ifadesinde break; koymadığım için hem kendi bloğundaki ifadeleri hem de bir sonraki case bloğundaki ifadeleri çalıştırdı. Her case için kendisine özgü bir işlem gerçekleştirmek istiyorsak break satırını koymamız gerekiyor.

Java’da Kontrol yapıları konumuzun sonuna gelirken her yazımda hatırlattığım üzere aklınıza takılan bir şey olursa aşağıdan yorum yap kısmından benimle iletişime geçebilirsiniz.

Yorum Yap

Yazar Hakkında

Yazmayı, öğrenmeyi, öğrendiklerini paylaşmayı , kodlamayı ve günün birinde Yönetim Bilişim Sistemleri Uzmanı olmanın hayalini kuran birisiyim.

Yorum Yap