skip to Main Content
Kontrol Akış İfadeleri

Kontrol Akış İfadeleri

Dart programlama dilinde proje kodları yukarıdan aşağıya doğru işlenmektedir. Bu akış işlemi sırasında kodu döngüye sokma, karar verme, akışı durdurma vb. işlemler için bu akış ifadelerinden faydalanırız. Kontrol akış ifadeleri genel olarak 3 başlık altında toplanabilir;

Karar Verme İfadeleri (if-else, switch-case)

Koşullu ifadeler olarak da bilinmektedir. Bu ifadeler kod akışı sırasında belli bir duruma göre koda yeni akış verebilmeyi sağlamaktadır.

if – else kullanım örneği aşağıda gösterilmiştir.

numberSort(int number) {
  if(number == 1){
    print("$number st");
  }else if(number == 2){
    print("$number nd");
  }else if(number == 3){
    print("$number rd");
  }else {
    print("$number th");
  }
}

Switch – Case kullanım örneği aşağıda gösterilmiştir. Gönderilen parametreye göre seçim yapma işlemini gerçekleştirmektedir. Eğer gönderdiğimiz ifade hiçbir seçenekte yok ise default seçeneği devreye girecektir. Birden fazla seçenekte aynı işlev yapılacaksa case seçeneğinin alt tarafı boş bırakılır. Aşağıdaki “spring” ve “summer” seçenekleri aynı işlemi yapacağı için spring seçeneğinin içi boş bırakılmıştır.

seasons(String season) {
  switch(season) {
    case 'spring': // Bir sonraki seçenek ile devam eder. Yani iki seçenekte aynı işlemi gerçekleştirir.
    case 'summer':
      print('Sea, Sand, Sun');
      break;
    case 'autumn':
      print('Season is Autumn');
      break;
    case 'winter':
      veryColdFunction();
      break;
    default:
      print('Global Warming');
  }
}

// Kullanımı
seasons('summer')

Döngü İfadeleri(for, foreach, while, do-while)

Aynı işlemi birden fazla kez yaptırmak istediğimizde bu ifadeleri kullanırız. Örneğin 1 – 10 arasındaki sayıları yazdıran bir kod bloğunu bu ifadeler ile yaparız.

For, başlangıç, bitiş ve artış miktarını belirleyerek kodun kaç defa tekrarlanacağını belirlediğimiz değerdir.

// 1- 10 arasını yazdıran döngü
// i başlangıç değerini belirlemektedir.
// i++ ise sayının kaçar kaçar artacağını belirtir.
for(int i=1; i<=10; i++) {
  print(i);
}

Foreach döngüsü de aynı for döngüsü gibi çalışır. Mevsimlerin listesinin olduğu bir değişken düşünün; bu değişkenin her bir elemanını ekrana yazdırmak istiyoruz. Bunu yapmanın en basit yolu foreach ile her döngüde sırasıyla bir değeri alıp ekrana yazdırmaktır. 2 türlü tanımlaması vardır. İstediğiniz gibi kullanabilirsiniz.

var seasons = ["spring", "summer", "autumn", "winter"];

// 1. kullanım
for(String season in seasons) {
  print(season);
}

// 2. kullanım
seasons.forEach((season) {
  print(season);
});

While döngüsü ile do-while döngüsü aynı mantık ile çalışmaktadır. Tek fark, while döngüsünde ilk önce bir durum değerlendirilir, durum geçerli ise döngü içerisine girer. Do-while döngüsünde ise önce döngü içerisine girer işlemleri bir sefere mahsus gerçekleştirir. Daha sonra durum geçerli ise devam eder, geçerli değil ise döngüden çıkılır.

int number = 1;
while(number <= 10 ){
  print("Number : $number");
  number++;
}

Yukarıdaki örnekte 1 – 10 arasındaki sayılar ekrana yazdırılmaktadır. Her işlem sonrası sayı 1 arttırılmaktadır. Sayı 10 dan büyük ya da eşit olduğunda koşul sağlanmakta ve döngüden çıkılmaktadır.

Aşağıdaki örnekte ise sayı 0 dan başlatılmış ve koşul olarak 1 den küçük ise işlemi sonlandırması gerektiği söylenmiştir. Başlangıçta zaten bu kurala uymamaktadır. Fakat yine de döngü içerisindeki kod bir seferlik çalıştırılır.

int number = 0;
do {
  print("Number : $number");
  number++;
}while(number < 1);

Dallanma, Kesme İfadeleri(break, continue, return)

Bu ifadeler kod akışını durdurmak, başka bir akışa dallandırmak ya da bir sonraki döngüye atlatmak gibi işlemleri yerine getirir.

break ifadesinin iki türlü kullanımı mevcuttur. Bunlardan ilki etiketli bir kod bloğunu sonlandırmak, diğeri ise kullanıldığı döngüyü sonlandırmak. Aşağıda iki örneği de görebilirsiniz.

labeledBreakFunction() {
  labeledBlock: {
    for(int i = 0; i < 999; i++) {
      if(i == 2) {
        break labeledBlock;
      }
      print(i);
    }
    for(int j = 0; j<988; j++) {
      print(j);
    }
  }
  print("do something");
}

// Kullanımı
labeledBreakFunction() // Çıktı: 0 1 do something

Aşağıdaki ifadede break ifadesi sadece birinci for döngüsünü etkilediği için ikinci for döngüsü hayatına devam eder.

unlabeledBreakFunction() {
  for(int i = 0; i < 999; i++) {
    if(i == 2) {
      break labeledBlock;
    }
    print(i);
  }
  for(int j = 0; j<988; j++) {
    print(j);
  }
  print("do something");
}

// Kullanımı
unlabeledBreakFunction() // Çıktı: 0 1 2 ... 987 do something

continue ifadesi döngülerde kullanılmaktadır. Buradaki amaç döngüden çıkmadan bir sonraki döngü işlemine devam etmektir.

continueFunction() {
  for(int i = 1; i <= 5; i++) {
    if(i == 2) {
      continue;
    }
    print(i);
  }
}

// Kullanımı
// 2 değerini ekrana yazdırmadan atlar
continueFunction(); // Çıktı: 1 3 4 5

return ifadesi bir fonksiyonu sonlandırmak için kullanılmaktadır. Döngü içerisinde de kullanılabilir. Fakat döngüyü değil komple fonkisyonu sonlandırır. Genelde fonksiyonlarda geri değer döndürme işlemlerinde kullanılır.

returnFunction() {
  for(int i = 1; i <= 5; i++) {
    if(i == 2) {
      return;
    }
    print('do not something');
  }
}

// Kullanımı
returnFunction(); // Çıktı: 1

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir