
Merhaba sevgili Turk Hack Team Ailesi, bu konumda Swift kodlamaya devam edeceğiz. Umarım herkes adına yararlı ve güzel bir konu olacaktır.

************************************
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 ife 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 casein genel yapısı şu şekildedir:
Kod:
[COLOR="Yellow"]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
}[/COLOR]
Örnek 1: Sesli ve sessiz harf ayırıcı program
Kod:
[COLOR="yellow"]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"[/COLOR]
Örnek 2: Büyük Küçük harf ayırıcı program
Kod:
[COLOR="Yellow"]let harf: Character = "a"
switch harf {
case "a":
println("Harf : a")
case "A":
println("Harf : A")
default:
println("harf A değil")
}
//Harf : a[/COLOR]
Örnek 3: Harf notu hesaplayıcı program
Kod:
[COLOR="Yellow"]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[/COLOR]
Tuples
Tuples birleştirilmiş iki değer anlamına gelir. (int x, int y) gibi
Örnek 1: x-y koordinat düzleminde nokta yerini saptama
Kod:
[COLOR="Yellow"]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[/COLOR]
Örnek 2: x-y koordinat düzleminde nokta yerini saptama
Kod:
[COLOR="Yellow"]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.[/COLOR]
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:
Kod:
[COLOR="Yellow"]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[/COLOR]
Where
Switch yapısının sorgu eklenmiş halidir. Caselerin durumu sorgunun sonucuna göre belirlenir.
Örnek:
Kod:
[COLOR="Yellow"]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[/COLOR]

Geri Dönüş ve Yanıtlarınız Bekliyorum. Benim için önemliler.

Konum bu kadardı arkadaşlar. Hepinize vaktinizi ayırdığınız, okumaya uygun görüp de okuduğunuz için teşekkür ediyorum. Saygılarla iyi forumlar.. :mml
//Alıntı İçermektedir!
Bay 404 Web Coder