İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır

Akış Kontrolü

'For' Loop'u

Bir programın akışını kontrol etmek için bazı yapılar bulunur. Belli bir koşulun gerçekleşmesine göre bir iş, gerçekleşmemesine göre başka bir iş yapılabilir. Bir işlemin belli bir koşul sağlanıncaya kadar veya sağlandığı sürece yapılması da istenebilir. Aynı selamı 10 kere ekrana basan bir uygulama yazalım.

Göster Gizle Kopar Satır Gizle Satır Göster
  1 public class GreeterByForLoop{
  2   public static void main(String[] args){
  3     for(int i=0;i<10;i++){
  4       System.out.println("Merhaba Dunya");
  5     }
  6   }
  7         
  8 }

Bir işlemin kaç kere yapılacağını belli olduğu tipteki loop'lar 'for' loop'larıdır. Yapısı

for( FirstStatement; TerminationCondition; StementForEachIteration ){
	BlockToExcecute;
}

biçimindedir. Burada for loop'unun içine ilk olarak, en başta (sadece bir kere) yapılması istenen işlem, ikinci olarak loop'tan çıkmak için sağlanması beklenen koşul girilir. Son olarak da her sefer yapılması gereken işlem belirtilir. Örnek'te i değişkeni 0'a eşitleniyor, her sefer 10'dan küçük mü diye kontrol ediliyor ve her sefer bir arttırılıyor. i=10 olduğunda i>10 ifadesi artık yanlış olacağından loop o noktada bitmektedir. int i=0; ifadesi hem bir variable declaration'u hem da initial value verme işlemidir. Bu, Java gibi bir değişkenin tipinin ve değerinin baştan belli olmasını zorunlu tutan dillerde gereklidir. i++ ifadesi de bir i değerinin bir arttırılması anlamına gelir i=i+1 yazmanın kısa ve hızlı bir yoludur.

While Loop'u

Yukarıdaki işlemi başka bir loop çeşidi olan while loop'u ile de gerçekleştirebilirdik.

Göster Gizle Kopar Satır Gizle Satır Göster
  1 public class GreeterByWhileLoop{
  2    public static void main(String[] args){
  3       int i=0;
  4       while(i<10){
  5            System.out.println("Merhaba Dunya");
  6            i++;
  7        }
  8    }
  9    
 10 }

Görüldüğü gibi while döngüsünün yapısı

while(ContinuationCondition){
   BlockToExecute;
}

biçimindedir. Örnekte for döngüsünün yerine kullanılmıştır ancak while döngüsünün işlevi bir işlemi belli bir koşul gerçekleştiği sürece yapmaktır. Bu koşul bir sayının belli bir değere ulaşması olduğu gibi döngünün içerisinde belirlenebilecek herhangi bir değer de olabilir. Özetle bu koşul gerçekleştiği sürece bu işlemi yap anlamına gelir.

'Do-While' Loop'u

Aynı işlemi while döngüsünün bir başka türü olan do-while döngüsü ile de halledebiliriz.

Göster Gizle Kopar Satır Gizle Satır Göster
  1 public class GreeterByDoWhileLoop{
  2         public static void main(String[] args){
  3                 int i=0;
  4                 do{
  5                         System.out.println("Merhaba Dunya");
  6                         i++;
  7                 }while(i<10);
  8         }
  9         
 10 }

do-while döngüsünün yapısı while döngüsünün tersidir.

do{
    BlockToExecute;                        
}while(ContinuationCondition);

biçimindedir. Bu tip döngüde önce işlem yapılmakta sonra döngünün bitip bitmediği kontrol edilmektedir. Elbette koşulu önce veya sonra kontrol etmek çoğu kez isteğe bağlıdır. Ancak bir koşulun gerçekleşip gerçekleşmediği ancak döngünün içinin bir kez çalıştırılması sonucunda belli oluyorsa do-while kullanmak zorunludur.

'If' Yapısı

Programın akışını kontrol etmekte en çok kullanılan yapı if yapısıdır. Bir koşul gereçkleşiyorsa belli bir işlemi gerçekleşmiyorsa bir başkasını yapmaya yarar. Ancak bu bir kez yapılan bir kontroldür ve programın akışı bir kez buradan dallandı mı bir daha aynı koşula bakılmaz. Adı ve cinsiyeti girilen bir insana erkekse selam veren bir uygulama yazalım.

Göster Gizle Kopar Satır Gizle Satır Göster
  1 public class GreeterByIfStatement{
  2     public static void main(String[] args){
  3         String  name=args[0];
  4         String  genus=args[1];
  5         if( genus.equals("Erkek") ){
  6             System.out.println("Merhaba Bay "+name);
  7         }
  8     }
  9     
 10 }

Burada kontrolü yapılan koşul genus.equals("Erkek") şeklindedir. Yani; dışarıdan alınan genus arguman'ı "Erkek" değerine eşitse.

'If-Else' Yapısı

Bir koşulun sağlanmaması durumunda da bir işlemi gerçekleştiren bir program yazalım.

Göster Gizle Kopar Satır Gizle Satır Göster
  1 public class GreeterByIfElseStatement{
  2         public static void main(String[] args){
  3                 String  name=args[0];
  4                 String  genuine=args[1];
  5                 if(genuine.equals("Erkek") ){
  6                       System.out.println("Merhaba Bay "+name);
  7                 }else{
  8                       System.out.println("Merhaba Bayan "+name);
  9                 }
 10         }
 11 }

'If-Else-If' Yapısı

Yukarıdaki örnek cinsiyetin erkek değilse kadın olduğunu varsaymaktadır. Yanlış bir ifade girilse de kadın kabul edilmesi istenmeyebilir.

Göster Gizle Kopar Satır Gizle Satır Göster
  1 public class GreeterByIfElseIfStatement{
  2     public static void main(String[] args){
  3         String  name=args[0];
  4         String  genuine=args[1];
  5         if( genuine.equals("Erkek") ){
  6             System.out.println("Merhaba Bay "+name);
  7         }else if(genuine.equals("Kadın")){
  8             System.out.println("Merhaba Bayan "+name);
  9         }else{
 10             System.out.println("Merhaba Bay/Bayan "+name);
 11         }
 12     }
 13 }

Bu şekilde istendiği kadar if ve else arasında istendiği kadar else if yapısı kullanılabilir.

Switch-Case Yapısı

Çok fazla sayıda if-else kullanmak yerine basit tipte veriler için switch-case diye başka bir kontrol ifadesi bulunmaktadır. Kullanıcıdan girilen sayıya göre bir işlem gerçekleştiren bir uygulama yazalım. Kullanıcı tek rakam girmeye zorlanırsa 10 tane ihtimal vardır ve çok sayıda if-else yapısı kurmak işi karmaşıklaştıracaktır.

Göster Gizle Kopar Satır Gizle Satır Göster
  1 public class GreeterBySwitchCaseStatement{
  2   public static void main(String[] args){
  3            String argument=args[0];
  4            int number=Integer.parseInt(argument);
  5            switch(number){
  6              case 0: System.out.println("0 Girdiniz.");break;
  7           case 1: System.out.println("1 Girdiniz.");break;
  8       case 2: System.out.println("2 Girdiniz.");break;
  9           case 3: System.out.println("3 Girdiniz.");break;
 10              case 4: System.out.println("4 Girdiniz.");break;
 11              case 5: System.out.println("5 Girdiniz.");break;
 12              case 6: System.out.println("6 Girdiniz.");break;
 13              case 7: System.out.println("7 Girdiniz.");break;
 14              case 8: System.out.println("8 Girdiniz.");break;
 15             case 9: System.out.println("9 Girdiniz.");break;
 16         }
 17     }
 18     
 19 }

Görüldüğü gibi String tipinde olan argument, Integer.parseInt methoduyla int tipine çevrilmiştir. Çünkü switch ifadesi sadece int, char gibi basit tiplerle çalışmakta, içerisine herhangi bir class tipi kabul etmemektedir.

Dosya Listesi

İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır