Android Dünyası

101 Android 101 Eğitimi

if-else-if Basamak Yapısı

Yazar: Geleceği Yazanlar Ekibi java if else java if basamak java kontrol yapiları

Birbirini izleyen çok sayıda koşul kontrolünü gerçekleştirmeye yarayan bir yapı if-else-if basamağı adını alır ve yazılış biçimi aşağıdaki gibidir:

 

if(ifade1)
    Deyim1;
else if (ifade2)
    Deyim2;
else if (ifade3)
    Deyim3;
....
....
else
    Deyim_n;
Deyim_n+1;

 

Bu yapı şu şekilde çalışır:

  • Önce ifade1 kontrol edilir; bu ifade doğru ise, Deyim1 uygulanır ve sonra Deyim_n+1’e geçilir.
  • İfade1 yanlış ise, o takdirde, ifade2 kontrol edilir. Bu ifade doğru ise, bu durumda sadece Deyim2 uygulanır ve sonra Deyim_n+1’e geçilir.
  • İfade2 yanlış ise, o takdirde, ifade3 kontrol edilir. Bu ifade doğru ise, bu durumda sadece Deyim3 uygulanır ve sonra Deyim_n+1’e geçilir.

Bu işlemler daha fazla sayıda else if bulunduğu durumda aynı şekilde devam eder.

if’ler ile kontrol edilen ifadelerin tümü yanlış ise, bu durumda programın kontrolü else’i izleyen Deyim_n’ye geçer ve bu deyim çalıştırılır. Daha sonra kontrol Deyim_n+1’e geçer. Yukardaki yapı içinde Deyim1, Deyim2 ...Deyim_n ile belirttiğimiz birimler tek bir deyimden ibaret olabileceduği gibi, { } sembolleri içine alınmış deyimler grubundan da oluşabilir.

 

Örnek Problem:

Bu örnekte basit bir vergi hesabı programı geliştirmek istiyoruz. Gelir vergisinin aşağıdaki kurallara göre belirlendiğini varsayalım:

Gelir ≤ 150,000,000 ise vergi oranı %25
Gelir ≤ 300,000,000 ise vergi oranı %30
Gelir ≤ 600,000,000 ise vergi oranı %35
Gelir ≤ 1,200,000,000 ise vergi oranı %40
Gelir > 1,200,000,000 ise vergi oranı %50

Bu problemi Java dilinde programlayabilmek için aşağıdaki basit algoritmayı uygulayacağız:

  1. Gelir bilgisi klavyeden girilecek.
  2. Gelir bilgisi, yukardaki vergi hesaplama kurallarına göre kontrol edilerek vergi hesaplanacak.
  3. Hesaplanan vergi ekrana yazdırılacak.


import java.util.Scanner;

public class Vergi {
    public static void main(String args[]){
        Scanner giris = new Scanner(System.in);
        double gelir, v, v1, v2, v3, v4;

        System.out.println("Gelir miktarınız (TL): ");
        gelir = giris.nextDouble();

        v1 = 150000000 * 0.25;
        v2 = 150000000 * 0.30;
        v3 = 300000000 * 0.35;
        v4 = 600000000 * 0.40;

        if (gelir <= 150000000)
            v = gelir * 0.25;
        else if (gelir <= 300000000)
            v = v1 + (gelir - 150000000) * 0.3;
        else if (gelir <= 600000000)
            v = v1 + v2 + (gelir - 300000000) * 0.35;
        else if (gelir <= 1200000000)
            v = v1 + v2 + v3 + (gelir - 600000000) * 0.4;
        else
            v = v1 + v2 + v3 + v4 + (gelir - 1200000000) * 0.5;

        System.out.println("Odemeniz gereken vergi: " + v);
    }
}

 

Programın çıktıları

ÇIKTI 1:

ÇIKTI 2:

Yukarıdaki programda uygulanan vergilendirme mantığı şöyledir:

Örneğin, bir kişinin geliri 200,000,000 TL olsun. Bunun ilk 150,000,000 TL’si %25 üzerinden, kalan 200,000,000 – 150,000,000 = 50,000,000 TL’si ise %30 üzerinden vergilendirir. O nedenle programın başında her aralığa ait sabit vergiler hesaplanarak v1, v2, v3 ve v4 değişkenlerine atanır.

 

İkinci Dereceden Bir Denklemin Köklerinin Bulunması

Lise yıllarında öğrendiğimiz ikinci derece denklem,

ax2 + bx + c = 0

şeklinde ifade edilir. Denklemin kökleri hakkında bilgi sahibi olabilmek için, denklemin diskriminantı adı verilen,

∆=b2­4ac

ifadesini hesaplamamız gerekir. Diskriminantın değerlerine göre, eğer ∆<0  ise denklemin gerçel sayılarla ifade edilebilecek bir kökü yoktur.

∆=0 ise denklemin, değerleri birbirine eşit olan iki kökü vardır ve bunlar,

x1=x2= ­–b/ (2a)

şeklinde hesaplanırlar. Bunlara iki kat kök ya da çakışık kök adı verilir.


 

∆>0  ise de denklemin birbirinden farklı iki gerçel kökü vardır ve bunlar,

x1=(–­b+√∆)/(2a)

ve

x2=(–b–√∆)/(2a)

şeklinde hesaplanırlar.

 

Şimdi ikinci dereceden bir denklemin köklerini bulan Java programına bakalım.

KOD BLOĞU:



import java.util.Scanner;

public class IkinciDerece{
    public static void main(String args[]){
        Scanner giris = new Scanner(System.in);
        double a, b, c, x1, x2, delta;

        System.out.println("a: ");
        a=giris.nextDouble();

        System.out.println("b: ");
        b=giris.nextDouble();

        System.out.println("c: ");
        c=giris.nextDouble();

        delta = b * b - 4 * a * c;

        if (delta < 0) {
            System.out.println("Gercek kok yoktur. \n");
        }
        else if (delta == 0) {
            x1 = -b / (2 * a);
            System.out.println("x1=x2=" + x1);
        }
        else {
            x1 = (-b + Math.sqrt(delta)) / (2 * a);
            x2 = (-b - Math.sqrt(delta)) / (2 * a);

            System.out.println("x1=" + x1);
            System.out.println("x2=" + x2);
        }
    }
}

ÖRNEK ÇIKTI 1:

ÖRNEK ÇIKTI 2: