Java switch-case & while & if-else yapısı

Başlatan karboran, 17 Ekim 2012 - 11:06:12

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

karboran

java da if else while switch döngüleri basit örneklerle anlattım yeni başlayan arkadaşlar için
http://yusufduzgun.com/2012/10/17/java-switch-case-while-if-else-yapisi/
Switch Case

Switch case i anlatmanın en iyi yolu basit bir örnek vermek diye düşünüyorum :)

public class Calisma1 {
    public static void main(String[] args) {
        int sayi = (int)(Math.random()*100);
        int sorgu = sayi%2;
        switch(sorgu){
            case 1:{
                System.out.println(sayi+" Tek bir sayıdır");
break;
            }
            case 0:{
                System.out.println(sayi+" Çift bir sayıdır");
                break;
            }
       
        }
    }
}


Yukari da ki kodları incelersek sayi değerini 0-100 arasında rastgele bir değer atadık ardından sorgu değişkenini bu rastgele atadığımız sayının 2 ile bölümünden kalanı olarak atadık.  Yani sorgu değişkenimiz için iki ihtimal doğdu ya 0 yada 1 olmak zorunda. Bu  sorgu değişkenimizi de switch in içine yazdık alttada case lerin birine ve 1 diğerine 0 dedik >> yani eğer benim sorgu değişkeni 1 ise case 1 i, 0 ise case 0 calistir dedik :) .. çalışma yapısını ve işin mantığını anlamışsınızdır umarım. Bu yöntemi if-else varken pek kullanmayız ama özel olarak kullanıldığı yerler var bilmemizde fayda var :)

while

while ingilizcede bildiğiniz üzere "-iken,olduğu zaman "  gibi anlamlara gelir, kullanımını ve mantığını anlamak için 0 dan 100 e kadar olan sayıları ekrana yazdıran basit bir program üzerinden gidelim

public class Calisma2 {
    public static void main(String[] args) {
        int sayac = 0;
        while(sayac<101){
            System.out.println("sayı = "+sayac);
            sayac++; //sayac=sayac+1;
        }
    }
}


kodlara baktığımızda önce 0 değerinde bir sayac değişkeni tanımlamışız ve while demişizki sayac değeri 101 den küçük olduğu sürece beni dönder , hemen altına ekrana sayıyı yazdıracak kodu yazmışız. Onun altında ise sayac++; demişiz bunu sebebi while döngüsü her döndüğünde sayacı birer artırark git, eğer bu komutu yazmasak program sonsuz döngüye girer :) ..

if-else

if-else adından da anlaşıldığı gibi eğer-değilse böyle ise böyle yap değilse böyle yap gibi :) ,, en üstte switch case ile yaptığımız programı birde if-else ile yaparsak tadından yenmez galiba :) .

public class Calisma3 {
    public static void main(String[] args) {
        int sayi = (int)(Math.random()*100);
        int sorgu = sayi%2;
        if(sorgu==0){
            System.out.println(sayi+" çift bir sayıdır");
        }
        else{
            System.out.println(sayi+" tek bir sayıdır");
        }
       
        /*
         * else if(sorgu==1){
         *          System.out.println(sayi+" tek bir saydır")
         * }
         *
         */
    }
}


kodlara bakarsak yine ; eğer sorgu değerimiz 0 ise şunu yap değilse bunu yap dedik gayet anlaşır ve basit olduğunu düşünüyorum.
Kabin basıncı düştü motorlarda arıza !
Vakit süratle aksın hakimiyet kur nabıza !
İçinden nasıl geldiyse yaz anlat herşeyi ,
Bu mektup varmıcak hayalini kurduğun kıza !

Yedionbir

tebrikler öğretici bir makale olmuş fakat gözümden mi kaçtı bilmiyorum ama dikkatimi çeken bazı eksik yerleri eklemek isterim, fazla bilgi göz çıkarmaz sonuçta :)

1- switch case statement (ifade) ında default isimli bir case (durum) daha oluşturup diğer case leri (durumları) karşılamayan bir sonuç çıktısı aldığımızda verilecek tepkiyi belirleriz.

örnek olarak (http://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html adresinden alıntıdır):


public class SwitchDemo {
    public static void main(String[] args) {

        int month = 8;
        String monthString;
        switch (month) {
            case 1:  monthString = "January";
                     break;
            case 2:  monthString = "February";
                     break;
            case 3:  monthString = "March";
                     break;
            case 4:  monthString = "April";
                     break;
            case 5:  monthString = "May";
                     break;
            case 6:  monthString = "June";
                     break;
            case 7:  monthString = "July";
                     break;
            case 8:  monthString = "August";
                     break;
            case 9:  monthString = "September";
                     break;
            case 10: monthString = "October";
                     break;
            case 11: monthString = "November";
                     break;
            case 12: monthString = "December";
                     break;
            default: monthString = "Invalid month"; // ---> eğer ay değerimiz 1-12 arasındaki bir sayıdan faklı ise örn : 67, 0, -8 gibi bir sayı ise tüm bu durumlardaki çıktı bu default case(durum) unda belirtilir.
                     break;
        }
        System.out.println(monthString);
    }
}



2- if - else yapısını anlatırken çoğu insanın aklına if varken niye birde else if conditional(koşul) u kullanılıyor diye merak edenler için,

java kodlarınızı çalıştırken blok içindeki tüm if koşullarını kontrol eder bu da aynı koşulu belirten koşullar için sıkıntı çıkarabilir, bu durumda else if yapısı kullanılmalıdır..

örnek ile açıklamak daha açıklayıcı olacaktır :


public class Deneme {
    public static void main(String[] args) {
           int x = 10;
           if(x<15){
                System.out.println("sayi 15 den küçük");
          }
          if(x<20){
                  System.out.println("sayi 20 den küçük");
          }
     }
}


bu programın çıktısı:
sayi 15 den küçük
sayi 20 den küçük


public class Deneme {
    public static void main(String[] args) {
           int x = 10;
           if(x<15){
                System.out.println("sayi 15 den küçük");
          }
          else if(x<20){
                  System.out.println("sayi 20 den küçük");
          }
     }
}


bu programın çıktısı :
sayi 15 den küçük       // 20 yazdırmadı çünkü ilk koşul sağlandığı için diğer durumlara bakmadı..

karboran

@Yedionbir ya aslında aklıma geldi ama işin aslı üşendim :) .Teşekkürler tamamlayıcı olmuş :)
Kabin basıncı düştü motorlarda arıza !
Vakit süratle aksın hakimiyet kur nabıza !
İçinden nasıl geldiyse yaz anlat herşeyi ,
Bu mektup varmıcak hayalini kurduğun kıza !

WhiteScars

Bi ekstra bilgide benden: Java 7 ile beraber switch isleminde artık string'lerde kullanılabiliyor.


String sart="abc";

switch (sart){
       case "abc": System.out.println("Dogru"); break;
       case "ac": System.out.println("Yanlis"); break;
       default: System.out.println("Default"); break;
}
İnsanoğluna bırakabileceğiniz en güzel miras tecrübelerinizdir.