Kontrol Yapıları

Bilgisayar ve Programlamaya Giriş
SıraKararswitchDöngüDallanma
Sercan KÜLCÜ · Giresun Üniversitesi

Giriş

Öğrenme Çıktıları

Akış

Sıralı, seçmeli ve tekrarlı akışı ayırt etmek.

Karar

if-else ve switch yapılarını seçmek.

Döngü

for, while ve do-while kullanmak.

İzleme

Sayaç ve koşulları adım adım değerlendirmek.

Temeller

Üç Temel Akış

  • Sıralı yapı deyimleri yazıldığı sırada yürütür.
  • Karar yapısı koşula göre farklı yol seçer.
  • Döngü yapısı bir kod bloğunu tekrarlar.
  • Bu üç yapı algoritmaların temel yürütme modelini oluşturur.

Temeller

Sıralı İşlemler

double taban = 8;
double yükseklik = 5;
double alan = taban * yükseklik / 2;
System.out.println(alan);
  • Her deyim bir öncekinin ürettiği değeri kullanabilir.
  • Sıra değiştirilirse tanımsız veya yanlış değer oluşabilir.

Kararlar

Karar Verme

  • Koşul boolean değer üretir.
  • if doğru yolu, else yanlış yolu tanımlar.
  • Birden fazla bağımsız if ile birbirini dışlayan else-if zinciri aynı davranmaz.

Kararlar

if-else Yapısı

if (not >= 60) {
    System.out.println("Geçti");
} else {
    System.out.println("Kaldı");
}
  • Sınır değeri koşulun parçasıdır.
  • Her olası değer yalnızca bir dala gider.

Kararlar

Çok Yollu Karar

if (not >= 90) {
    harf = 'A';
} else if (not >= 80) {
    harf = 'B';
} else if (not >= 70) {
    harf = 'C';
} else {
    harf = 'F';
}
  • Koşullar yukarıdan aşağı değerlendirilir.
  • Daha dar ve yüksek eşikler önce yazılır.

Kararlar

İç İçe Kararlar

  • Bir karar dalı içinde başka karar bulunabilir.
  • İç içe yapı, ikinci koşulun yalnızca ilk koşul sağlandığında anlamlı olduğu durumda uygundur.
  • Derin iç içelik okunabilirliği azaltır; koşullar birleştirilebilir veya metoda ayrılabilir.

Kararlar

Mantıksal Operatörlerle Karar

boolean uygun = yaş >= 18 && belgeVar;
if (uygun) {
    System.out.println("Başvuru alınabilir");
}
  • && iki koşulun da doğru olmasını ister.
  • || seçeneklerden en az birinin doğru olmasını ister.

switch

switch Ne Zaman?

  • Tek bir ifadenin ayrık değerlerine göre seçim yaparken okunabilir olabilir.
  • case etiketleri sabit seçenekleri temsil eder.
  • Aralık ve karmaşık mantıksal koşullarda if-else çoğunlukla daha uygundur.

switch

switch İfadesi

String mevsim = switch (ay) {
    case 12, 1, 2 -> "Kış";
    case 3, 4, 5 -> "İlkbahar";
    case 6, 7, 8 -> "Yaz";
    case 9, 10, 11 -> "Sonbahar";
    default -> "Geçersiz";
};
  • Ok biçimi yanlışlıkla sonraki case'e geçişi önler.
  • default beklenmeyen değerleri ele alır.

switch

if-else ve switch

Ölçütif-elseswitch
Aralık koşuluUygunDoğrudan uygun değil
Tek değere göre çok seçenekKullanılabilirGenellikle daha açık
Karmaşık mantıkUygunSınırlı
Her dal sonuç üretirAtama gerekirswitch ifadesi değer döndürebilir

Döngüler

Döngünün Bileşenleri

  • Başlangıç, döngüden önce kurulan durumdur.
  • Koşul tekrarın sürüp sürmeyeceğini belirler.
  • Gövde her turda yapılan işlemleri içerir.
  • Güncelleme koşulu sona yaklaştırır.

Döngüler

for Döngüsü

int toplam = 0;
for (int i = 1; i <= 10; i++) {
    toplam += i;
}
System.out.println(toplam);
  • Tekrar sayısı belirgin olduğunda for uygundur.
  • i değişkeni döngü bloğuyla sınırlıdır.

Döngüler

while Döngüsü

int sayı = 5;
int faktöriyel = 1;
while (sayı > 1) {
    faktöriyel *= sayı;
    sayı--;
}
  • Koşul gövdeden önce kontrol edilir.
  • Başlangıçta false ise gövde hiç çalışmaz.

Döngüler

do-while Döngüsü

int seçim;
do {
    seçim = menüyüGöster();
    işle(seçim);
} while (seçim != 0);
  • Koşul gövdeden sonra kontrol edilir.
  • Gövde en az bir kez çalışır.

Döngüler

Döngü Seçimi

DurumTercih
Tekrar sayısı bellifor
Koşul sürdükçe tekrarwhile
En az bir kez çalışmalıdo-while
Dizi elemanlarını sırayla gezmefor veya enhanced for

Dallanma

break ve continue

for (int i = 0; i < değerler.length; i++) {
    if (değerler[i] < 0) continue;
    if (değerler[i] == hedef) break;
    işle(değerler[i]);
}
  • continue o turdaki kalan işlemleri atlar.
  • break en yakın döngüyü sonlandırır.
  • Aşırı kullanım akışı izlemeyi zorlaştırabilir.

Döngüler

İç İçe Döngü

for (int satır = 0; satır < 3; satır++) {
    for (int sütun = 0; sütun < 4; sütun++) {
        System.out.printf("(%d,%d) ", satır, sütun);
    }
    System.out.println();
}
  • İç döngü dış döngünün her turunda tamamlanır.
  • Toplam tekrar sayısı yaklaşık satır × sütundur.

Döngüler

Sonsuz Döngü

  • Koşul hiçbir zaman false olmuyorsa döngü bitmez.
  • Sayaç yanlış yönde güncellenmiş veya hiç güncellenmemiş olabilir.
  • Sürekli çalışan olay döngülerinde bile kontrollü çıkış ve kaynak yönetimi gerekir.

Doğrulama

Döngü Değişmezi

  • Her turun başında doğru kalan bir özelliktir.
  • Algoritmanın kısmi sonucunu ve ilerlemesini açıklamaya yardım eder.
  • Örneğin toplam döngüsünde biriktirici, o ana kadar işlenen değerlerin toplamıdır.

Doğrulama

Sınır Hataları

HataÖrnekSonuç
Bir eksiki < n-1Son eleman işlenmez
Bir fazlai <= nDizi sınırı aşılır
Yanlış başlangıçi = 10. indeks atlanır
Yanlış güncellemei--Koşuldan uzaklaşır

Özet

Bölüm Özeti

  • Karar yapıları koşula göre yol, döngüler tekrar sayısı veya koşula göre tur seçer.
  • if-else aralık ve karmaşık koşullarda; switch ayrık seçeneklerde kullanışlıdır.
  • for, while ve do-while koşulun yeri ve tekrar bilgisinde farklılaşır.
  • Döngü başlangıcı, koşulu ve güncellemesi sınır değerlerle test edilmelidir.

Özet

Kontrol Soruları

  1. Bağımsız if yapıları ile else-if zinciri nasıl farklıdır?
  2. switch için default neden yararlıdır?
  3. while ve do-while arasındaki temel fark nedir?
  4. break ile continue ne yapar?
  5. Dizi döngüsünde i <= dizi.length neden hatalıdır?

Son

Kontrol Yapıları
1 / 1Sercan KÜLCÜ, Tüm hakları saklıdır.

← → veya boşluk ile gezinin · F: tam ekran · Home/End: ilk/son slayt