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
Was this helpful?