İOS Swift

Swift Switch Yapısı

Switch Yapısı

Switch yapısı, bir değeri alarak belirlenen koşullar ile kıyaslar ve uygun olan koşulun sahip olduğu kod bloğunu çalıştırır. if yapısına benzerdir ve özellikle kıyaslanacak durumlar net ise if’e göre daha kullanışlıdır.

Kısaca özetleyecek olursak, bir tipte bir değişkeni alır ve diğerleriyle kıyaslar.

Switch case’in genel yapısı şu şekildedir:

switch karşılaştırılacak değer {
case koşul 1:
    1. koşula uygun olma durumundaki cevap
case koşul 2,
value 3:
    2. yada 3. koşula uygun olma durumundaki cevap
default:
    hiç bir koşula uygun olmaz ise dönecek olan cevap
}

Örnek 1: Sesli ve sessiz harf ayırıcı program

let harf: Character = "e"
switch harf {
case "a", "e", "i", "o", "u":
    println("(harf) sesli bir harftir")
case "b", "c", "d", "f", "g", "h", "j", "k", "l", "m",
"n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z":
    println("(harf) sesli bir harf değildir")
default:
    println("(harf) sesli veye sessiz bir harf değil")
}

//"e sesli bir harftir"

Örnek 2: Büyük – Küçük harf ayırıcı program

let harf: Character = "a"
switch harf {
case "a":
    println("Harf : a")
case "A":
    println("Harf : A")
default:
    println("harf A değil")
}

//Harf : a

Örnek 3: Harf notu hesaplayıcı program  

var examResult = 89
        
        switch examResult{
        case 0...30:
            println("Harf Notunuz F")
        case 31...50:
            println("Harf Notunuz D")
        case 51...75:
            println("Harf Notunuz C")
        case 76...90:
            println("Harf Notunuz B")
        case 91...100:
            println("Harf Notunuz A")
        default:
            println("Harf notunuz geçerli değil !")
        }

//Harf Notunuz B

 Tuples

Tuples birleştirilmiş iki değer anlamına gelir. (int x, int y) gibi…

Swift Tuples adlı makalemde daha ayrıntılı bilgi bulabilirsiniz.

Örnek 1: x-y koordinat düzleminde nokta yerini saptama

let point = (1, 1)
        switch point {
        case (0, 0):
            println("(0, 0) noktası orjin noktasındadır.")
        case (_, 0):
            println("((point.0), 0) noktası x ekseni üzerindedir.")
        case (0, _):
            println("(0, (point.1)) noktası y ekseni üzerindedir.")
        case (-2...2, -2...2):
            println("((point.0), (point.1)) noktası, belirlenen alan içerisindedir")
        default:
            println("((point.0), (point.1)) noktası, belirlenen alan dışındadır.")
        }
        

//(1, 1) noktası, belirlenen alan içerisindedir

Örnek 2: x-y koordinat düzleminde nokta yerini saptama

let point = (99, 0)
        switch point {
        case (0, 0):
            println("(0, 0) noktası orjin noktasındadır.")
        case (_, 0):
            println("((point.0), 0) noktası x ekseni üzerindedir.")
        case (0, _):
            println("(0, (point.1)) noktası y ekseni üzerindedir.")
        case (-2...2, -2...2):
            println("((point.0), (point.1)) noktası, belirlenen alan içerisindedir")
        default:
            println("((point.0), (point.1)) noktası, belirlenen alan dışındadır.")
        }
        

//(99, 0) noktası x ekseni üzerindedir.

Value Binding

Tuple olarak verilen değer çiftinden bir tanesinin değerine bakılarak kontrol edilir. Tuple çiftinin diğer değeri ise değişken olarak verilir. Bu değişkende kontrol edilecek olan tuple çiftinden gelen değer olacaktır.

Örnek:

let anotherPoint = (2, 0)
switch anotherPoint {
case (let x, 0):
    println("x ekseni üzerindedir ve x in değeri :(x)")
case (0, let y):
    println("y ekseni üzerindedir ve y nin değeri :(y)")
case let (x, y):
    println("başka bir noktadadır: ((x), (y))")
}

//x ekseni üzerindedir ve x in değeri :2

Where

Switch yapısının sorgu eklenmiş halidir. Case’lerin durumu sorgunun sonucuna göre belirlenir.

Örnek:

let anotherPoint = (1, -1)
switch anotherPoint {
case let (x, y) where x == y:
    println("((x), (y)) noktası x == y doğrusu üzerindedir")
case let (x, y) where x == -y:
    println("((x), (y)) noktası x == -y doğrusu üzerindedir")
case let (x, y):
    println("((x), (y)) noktası herhangi bir yerdedir")
}

//(1, -1) noktası x == -y doğrusu üzerindedir

Yorum Ekle

Yorum Yap