Kontrol Akışı

Kod içerisinde bir kontrol mekanizması görevi gören ve durumları denetleyen “if-else” yapılarını kullanacaksınız.

Mentorluk

Randevu OluşturKredi Al

Kontrol Akışı Nedir?

Kontrol akışları sayesinde farklı kod dalları oluşturarak farklı durumlar için işlemlerimizi değiştirebiliriz. Swift dilinde bunu yapmak için genellikle iki farklı yapı kullanılır: if ve switch.

If

Bir if döngüsü; üzerinde yazılan ifadelerin true (doğru) ya da false (yanlış) değerlerini almasına göre ifadeleri çalıştırır: Eğer döngüde yazılan ifade true değerine eşitse, o ifadenin yazılı olduğu aralıkta bulunan kodlar çalışır. Bunu nasıl yaptığını görmek için bu örneğe bakalım:


    let sayi = 10
    if sayi == 10 {
    print("Merhaba, Dünya!")
    }

Bu if döngüsünde, sadece sayi değerinin 10 olması durumunda ifade çalışacaktır. Değerimiz 11 olursa, çıktı olarak hiç bir şey alamayız. Peki diğer diğer bütün değerler için ekstra bir if döngüsü mü oluşturmalıyız? Tabii ki hayır. Bunun için else if döngüsünü (veya döngülerini) kullanabiliriz. Örneğin bunu 11 sayısı için yapalım.


    let sayi = 10
    if sayi == 10 {
        print("Merhaba, Dünya!")
    } else if sayi == 11 {
        print("Merhaba, TurkishKit!")
    }

Peki sadece bir ifadede birden fazla sayıyı kapsayacak hâle getiremez miyiz? Tabii ki getirebiliriz! Bunun için operatörleri kullanmamız gerekecek.

Öncelikle sayi değerinin sadece bir sayıya eşit olmasına gerek yok. İstersek o “==” operatörünü “>” operatörü ile değiştirerek, döngümüzü, sayi değeri 11'den büyük olduğunda ifademizin altındaki kodları çalıştıracak şekilde ayarlayabiliriz.


    let sayi = 10
    if sayi == 10 {
        print("Merhaba, Dünya!")
    } else if sayi > 11 {
        print("Merhaba, TurkishKit!")
    }

(Döngünüzdeki bütün ifadelerin farklı bir durumu teşkil etmesi oldukça önemlidir. Örneğin, üstteki örneğimizde bütün “==” operatörlerini “>” operatörüne çevirseydik, ikinci ifademiz hiç bir zaman çalışmayacaktı, çünkü if döngüsünde yazdığınız ifade doğruysa, döngünüz ondan sonraki diğer bütün ifadeleri göz ardı edecektir.)

Ayrıca, ifademizdeki koşulu biraz daha karmaşık hâle getirmek istiyorsak ve/veya operatörlerini kullanabiliriz. Örneğin ikinci ifademizdeki sayı skalasını kısaltmak için “ve” operatörünü kullanabiliriz.


    let sayi = 10
    if sayi == 10 {
        print("Merhaba, Dünya!")
    } else if sayi > 11 && sayi < 50 {
        print("Merhaba, Adım Adım Kodla!")
    }

Bu operatör sayesinde sayi değeri 50 olduğunda, ikinci ifademiz çalışmayacak. Peki o zaman, sayi değeri, birinci ve ikinci ifadelere uymayan “herhangi” bir sayı değeriyken (örneğin 1000) döngümüzde nasıl bir ifadede true değerini alabilir? Bunun cevabı tabii ki de else ifadesi! Eğer döngümüzde else yazan yeni bir ifade yazarsak, sayi değeri birinci ve ikinci ifadelerde false değerini döndüğü zaman, else ifadesinde true değerini dönerek o bölümde yazan kodları çalıştıracaktır.


    let sayi = 10
    if sayi == 10 {
        print("Merhaba, Dünya!")
    } else if sayi > 11 && sayi < 50 {
        print("Merhaba, Adım Adım Kodla!")
    } else {
        print("Merhaba, Türkiye!")
    }

Switch

Bir switch döngüsü; bir değeri dikkate alır ve birkaç olası eşleşme değeriyle karşılaştırır. Daha sonra başarılı bir şekilde eşleşen ilk ifadeyi temel alarak uygun bir kod bloğunu yürütür. Bunu nasıl yaptığını görmek için bu örneğe bakalım:


    let karakter: Character = "a"
    switch karakter {
    case "a", "A":
        print("A karakteri girildi.")
    case "b", "B":
        print("B karakteri girildi.")
    case "c", "C":
        print("C karakteri girildi.")
    default:
        break
    }

Bu görmüş olduğunuz döngüde, dikkate alınan değer karakter değişkenidir. (Fark edeceğiniz üzere, o bir “Character” objesidir. Görüleceği üzere, bu tarz farklı objeleri de koşul ifadelerinde kullanabiliriz.)

Fark edeceğiniz üzere, döngümüzde yer alan her bir ayrı durumda birden fazla değer mevcut ve bu değerler birbirinden virgül işareti ile ayrılıyor. (Bu virgüller, “veya” operatörü ile aynı işi görürler.) Bunun anlamı, eğer durumlardaki değerlerden bir tanesi bile dikkate alınan değer ile aynıysa, o durumun içinde yazılmış kodlar çalışır.

default ifadesi ise if döngüsündeki else ile aynı işi görmektedir, ancak default ifadesinin yazılması zorunludur. Eğer bir switch döngüsünün ifadesinde kod yazmak istemiyorsanız, o ifadenin kod bölümüne “break” yazmalısınız.

Sıradaki

Fonksiyonlar

Fonksiyonların bu kadar güçlü olmasını sağlayan yönlerini keşfedecek ve fonksiyonları daha esnek hale getiren parametre kavramını öğreneceksiniz.

Videolar

Swift Temellerine Giriş
Swift Temellerine Giriş
Teknolojinin Dili Kodlama
Teknolojinin Dili Kodlama
Playground Temelleri
Playground Temelleri
Veri Tipleri & Sabitler ve Değişkenler
Veri Tipleri & Sabitler ve Değişkenler
Operatörler
Operatörler
Kontrol Akışı
Kontrol Akışı
Fonksiyonlar
Fonksiyonlar
String'ler
String'ler
Objeler, Metotlar ve Özellikler
Objeler, Metotlar ve Özellikler
Xcode ile Tanışın
Xcode ile Tanışın
Struct
Struct
Class
Class
Koleksiyonlar
Koleksiyonlar
Döngüler
Döngüler
Xcode
Xcode
“Build”, “Run” ve “Debug”
“Build”, “Run” ve “Debug”
Arayüz Elemanlarını Yakından Tanıyın
Arayüz Elemanlarını Yakından Tanıyın
Dokümantasyon
Dokümantasyon
“Interface Builder” Temelleri
“Interface Builder” Temelleri
"UIKit" ile Kullanıcı Arayüzüne Giriş
"UIKit" ile Kullanıcı Arayüzüne Giriş
İlk Uygulama
İlk Uygulama
Kontrol Elemanları
Kontrol Elemanları
Autolayout & Stackview
Autolayout & Stackview
Optionals
Optionals
Tip Dönüşümleri
Tip Dönüşümleri
Guard
Guard
Uygulama Hayat Döngüsü ve Veri Modelleme
Uygulama Hayat Döngüsü ve Veri Modelleme
Scope Sabit & Değişken
Scope Sabit & Değişken
Enumerations
Enumerations
Protokoller
Protokoller
Segue ve Navigation Controller
Segue ve Navigation Controller
TabbarController
TabbarController
View Controller Hayat Döngüsü
View Controller Hayat Döngüsü
Basit Akışlar Oluşturmak
Basit Akışlar Oluşturmak
Uygulama Anatomisi ve Hayat Döngüsü
Uygulama Anatomisi ve Hayat Döngüsü
Model View Controller
Model View Controller
Uygulamanızda Veri Kaydedin
Uygulamanızda Veri Kaydedin
ScrollView
ScrollView
TableView Giriş
TableView Giriş
TableView İleri
TableView İleri
Verileri Kaydetmek
Verileri Kaydetmek
System View Controllers
System View Controllers
Uygulama Geliştirin
Uygulama Geliştirin
Karmaşık Veri Girişi Ekranları Oluşturmak
Karmaşık Veri Girişi Ekranları Oluşturmak
Closures
Closures
Extensions
Extensions
Pratik Animasyonlar
Pratik Animasyonlar
İnternet ile İletişime Geçin
İnternet ile İletişime Geçin
İnternet ile Çalışmak
İnternet ile Çalışmak
JSON
JSON
Concurrency
Concurrency