-
Sadrazamv4
instagram:sadrazam.spy Tg:Sadrazamv4
🚀 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! ☕✨
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