Döngüler (Loops)

Bu sayfa, Dart kodunuzun akışını kontrol etmek için döngüler ve destekleyici ifadeler kullanarak nasıl kullanabileceğinizi göstermektedir:

  • for döngüleri

  • while ve do while döngüleri

  • break ve continue

Dart'ta kontrol akışını şu şekillerde de manipüle edebilirsiniz:

  • if ve switch gibi şartlarla dallanma

  • try, catch ve throw gibi istisnalarla For Döngüleri

For Döngüsü (For Loops)

Standart for döngüsü ile ardışık işlemler yapabilirsiniz. Örneğin:

var mesaj = StringBuffer('Dart eğlencelidir');
for (var i = 0; i < 5; i++) {
  mesaj.write('!');
}

Dart'ın for döngüsündeki kapanışlar, indeksin değerini yakalar. Bu, JavaScript'te sıkça rastlanan bir hata durumunu engeller. Örneğin:

var geriDonusler = [];
for (var i = 0; i < 2; i++) {
  geriDonusler.add(() => print(i));
}

for (final c in geriDonusler) {
  c();
}

Çıktı olarak beklenen şekilde 0 ve ardından 1 yazdırılır. Bununla karşılaştırıldığında, JavaScript örneği 2 ve ardından 2 yazdırırdı.

Bazen bir Iterable türü üzerinde ardışık işlemler yaparken mevcut iterasyon sayısını bilmemeniz gerekebilir, örneğin List veya Set gibi. Bu durumda, daha temiz bir kod için for-in döngüsünü kullanın:

for (final aday in adaylar) {
  aday.mulakatYap();
}

Iterable'dan elde edilen değerleri işlemek için, for-in döngüsünde bir deseni de kullanabilirsiniz:

for (final Aday(isim, deneyimYil) in adaylar) {
  print('$isim, $deneyimYil deneyime sahip.');
}

Iterable sınıflar, başka bir seçenek olarak forEach() yöntemine sahiptir:

var koleksiyon = [1, 2, 3];
koleksiyon.forEach(print); // 1 2 3

While ve Do-While

While döngüsü, döngüden önce koşulu değerlendirir:

while (!tamamlandiMi()) {
  birSeyYap();
}

Do-while döngüsü, döngüden sonra koşulu değerlendirir:

do {
  satirYaz();
} while (!sayfaSonundaMi());

Break ve Continue

Döngüyü durdurmak için break kullanın:

while (true) {
  if (kapatmaIstegi()) break;
  gelenIstekleriIsle();
}

Bir sonraki döngü iterasyonuna atlamak için continue kullanın:

for (int i = 0; i < adaylar.length; i++) {
  var aday = adaylar[i];
  if (aday.deneyimYil < 5) {
    continue;
  }
  aday.mulakatYap();
}

Liste veya set gibi bir Iterable kullanıyorsanız, önceki örneği nasıl yazacağınız farklılık gösterebilir:

adaylar
    .where((c) => c.deneyimYil >= 5)
    .forEach((c) => c.mulakatYap());

Last updated