# 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:

```dart
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:

```dart
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:

```dart
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:

```dart
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:

```dart
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:

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

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

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

## Break ve Continue

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

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

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

```dart
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:

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://dart.bayramalacam.com/kontrol-akisi-control-flow/donguler-loops.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
