Kontrol Yapıları
Bilgisayar ve Programlamaya Giriş
SıraKararswitchDöngüDallanma
Sercan KÜLCÜ · Giresun ÜniversitesiGiriş
Öğ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çüt | if-else | switch |
|---|---|---|
| Aralık koşulu | Uygun | Doğrudan uygun değil |
| Tek değere göre çok seçenek | Kullanılabilir | Genellikle daha açık |
| Karmaşık mantık | Uygun | Sınırlı |
| Her dal sonuç üretir | Atama gerekir | switch 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
| Durum | Tercih |
|---|---|
| Tekrar sayısı belli | for |
| Koşul sürdükçe tekrar | while |
| En az bir kez çalışmalı | do-while |
| Dizi elemanlarını sırayla gezme | for 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 | Örnek | Sonuç |
|---|---|---|
| Bir eksik | i < n-1 | Son eleman işlenmez |
| Bir fazla | i <= n | Dizi sınırı aşılır |
| Yanlış başlangıç | i = 1 | 0. indeks atlanır |
| Yanlış güncelleme | i-- | 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ı
- Bağımsız if yapıları ile else-if zinciri nasıl farklıdır?
- switch için default neden yararlıdır?
- while ve do-while arasındaki temel fark nedir?
- break ile continue ne yapar?
- 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