🚀 BAŞTAN SONA JAVA DİLİ BÖLÜM-4: Döngüler (`for`, `while`, `do-while`) ve Akış Kontrolü 🌀

Konu Özeti

Java'da döngü yapıları ve akış kontrolü ele alınıyor. for, while ve do-while döngülerinin sözdizimi, kullanım alanları ve farkları örneklerle açıklanıyor. break ve continue komutları ile döngü akışının nasıl yönlendirileceği gösteriliyor. Ayrıca etiketli döngülerin kullanımına değiniliyor.

🚀 BAŞTAN SONA JAVA DİLİ BÖLÜM-4: Döngüler (`for`, `while`, `do-while`) ve Akış Kontrolü 🌀

Selamlar! Serimizin 4. bölümüne hoş geldiniz.

Önceki bölümde operatörleri, `if/else` karar mekanizmalarını ve `switch-case` yapılarını detaylarıyla incelemiştik. Bu bölümde ise tekrarlayan işlemleri otomatikleştiren **Döngüleri (Loops)**, **`break`/`continue` komutlarını** ve **Etiketli (Labeled) Döngüleri** öğreneceğiz.

Java'da 3 temel döngü yapısı bulunur:
1. **`for` Döngüsü:** Adım sayısı veya döngünün kaç kez çalışacağı önceden belli olduğunda tercih edilir.
2. **`while` Döngüsü:** Belirtilen koşul `true` olduğu sürece çalışmaya devam eder.
3. **`do-while` Döngüsü:** Koşul ne olursa olsun kodu **en az bir kez** çalıştırır, ardından koşulu kontrol eder.

---

📌 1. Klasik `for` Döngüsü 🔄

`for` döngüsü; başlangıç değeri, çalışma koşulu ve artış/azalış miktarını tek satırda tanımlamamıza olanak tanır.

Sözdizimi:
`for (başlangıç; koşul; artış) { // Çalışacak Kodlar }`

public class Main {
public static void main(String[] args) {
// 1'den 5'e kadar olan sayıları ekrana yazdıralım
for (int i = 1; i <= 5; i++) {
System.out.println("Sayı: " + i);
}

// 10'dan 0'a 2'şer 2'şer geriye doğru sayma
for (int j = 10; j >= 0; j -= 2) {
System.out.println("Geri Sayım: " + j);
}
}
}

---

⏳ 2. `while` Döngüsü 🔄

`while` döngüsü, parantez içindeki koşul `true` kaldığı sürece dönmeye devam eder. Koşul en başta `false` ise döngü gövdesi hiç çalışmaz.

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int sayi = 0;
int toplam = 0;

System.out.println("Sayıları toplayan program (Çıkmak için 0 girin):");

// Kullanıcı 0 girene kadar döngü devam eder
while (true) {
System.out.print("Sayı giriniz: ");
sayi = scanner.nextInt();

if (sayi == 0) {
break; // 0 girildiğinde döngüden anında çık
}

toplam += sayi;
}

System.out.println("Girilen Sayıların Toplamı: " + toplam);
scanner.close();
}
}

---

🔁 3. `do-while` Döngüsü 🎯

`do-while` döngüsünün `while` döngüsünden tek ve en kritik farkı: **Koşul kontrolünün döngünün sonunda yapılmasıdır.** Bu sayede koşul yanlış olsa dahi kod bloğu **en az bir kez** yürütülür.

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int sifre;

do {
System.out.print("Sistem Parolasını Giriniz (4 Haneli): ");
sifre = scanner.nextInt();
} while (sifre != 1234); // Şifre 1234 olmadığı sürece sormaya devam et

System.out.println("Giriş Başarılı! Hoş geldiniz. 🚀");
scanner.close();
}
}

---

⚡ 4. Akış Kontrolü: `break` ve `continue` 🎛️

• **`break`:** İçinde bulunduğu döngüyü anında sonlandırır ve döngü dışına atlar.
• **`continue`:** Döngünün o anki adımını atlar, doğrudan bir sonraki adıma/güncellemeye geçer.

public class Main {
public static void main(String[] args) {
System.out.println("--- 1 ile 10 Arasındaki Sayılar (5 Atlanacak, 8'de Duracak) ---");

for (int i = 1; i <= 10; i++) {
if (i == 5) {
System.out.println("Sayı 5 atlandı! (continue)");
continue; // 5'i basmadan sonraki adıma geç
}

if (i == 8) {
System.out.println("Sayı 8 oldu, döngü kırılıyor! (break)");
break; // Döngüyü tamamen bitir
}

System.out.println("İndeks: " + i);
}
}
}

---

🧱 5. İç İçe Döngüler (Nested Loops) ve Etiketler (Labels) 🏷️

Bir döngünün içinde başka bir döngü tanımlanabilir. Matris işlemleri, çarpım tablosu veya desen çizimlerinde sıklıkla kullanılır.

İç içe döngülerde doğrudan dıştaki döngüyü kırmak veya atlamak için **Etiket (Label)** mekanizması kullanılır.

public class Main {
public static void main(String[] args) {
// Dış döngüye 'DisDongu' etiketini verdik
DisDongu: for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
if (i == 2 && j == 2) {
System.out.println("i=2 ve j=2 oldu, Dış Döngü Kırılıyor!");
break DisDongu; // Etiketli break ile doğrudan dıştaki döngü sonlandırılır
}
System.out.println("i: " + i + " | j: " + j);
}
}
}
}

---

📝 Bölüm Özeti ve Gelecek Bölüm 🔮

Bu bölümde `for`, `while` ve `do-while` döngülerini, `break`/`continue` ifadelerini ve etiketli döngü kontrolünü öğrendik.

👉 **Bölüm 5'te Bizi Ne Bekliyor?**
• Metotlar (Methods) ve Fonksiyonel Yapı
• Metot Parametreleri ve Geri Dönüş Tipi (`void` vs değer döndüren)
• Metot Aşırı Yükleme (Method Overload
ing)
• Metotlarda `varargs` (Değişken Sayıda Parametre) Kullanımı

Sorularınızı konu altından iletebilirsiniz. Bir sonraki bölümde görüşmek üzere! ☕✨

🔒 Bu içeriği görmek için giriş yapın

 
Yanıt yazmak için giriş yapmalısınız
Forum özelliklerini kullanmak ve Level 2 üyelik satın almak için hesabınıza giriş yapın.
135,081Konular
3,298,054Mesajlar
326,271Kullanıcılar
serdarsucu77Son Üye
Üst Alt