if,else if,elseve mantıksal operatörlerle koşullar yazmakswitchile değerleri, aralıkları ve kalıpları kontrol etmekfor-in,whileverepeat-whiledöngülerini aralıklarla birlikte kullanmak
Telefonun hava karardığında ekranı kendiliğinden kısar, çalar saatin ise her sabah aynı saatte çalar. İlk durumda program karar verir, ikincisinde bir işi tekrarlar. Bu iki beceri her programın temelidir; bu derste onları Swift'te nasıl yazacağını öğreneceksin.
`if` ile karar vermek
if bir koşulu kontrol eder: koşul true ise süslü parantez içindeki kod çalışır. else if yeni bir koşul ekler, else ise hiçbiri doğru olmadığında ne olacağını yazar. Swift'te koşulu parantez içine almak gerekmez, ama süslü parantezler { } her zaman zorunludur.
let temperature = 28
if temperature > 30 {
print("Very hot")
} else if temperature > 20 {
print("Warm")
} else {
print("Cool")
}Warm
Koşullarda karşılaştırma operatörleri kullanılır: == (eşit), != (eşit değil), <, >, <=, >=. Birkaç koşulu birleştirmek için mantıksal operatörler vardır: && (ve), || (veya), ! (değil).
let age = 15
let hasTicket = true
if age >= 12 && hasTicket {
print("Welcome to the cinema!")
}
let isWeekend = false
print(!isWeekend)
print(age < 10 || hasTicket)Welcome to the cinema! true true
&& operatörü AND kapısı gibi çalışır: sonuç yalnızca iki giriş de doğruysa doğrudur. OR (||) ve NOT (!) kapılarını da dene.`switch` ve kalıplar
Bir değerin birçok seçenekle karşılaştırılması gerektiğinde switch daha okunaklıdır. Swift'in switch'i çok güçlüdür: bir case birkaç değeri, bir aralığı (90...100) ve hatta bir demet kalıbını kontrol edebilir. Uyan ilk case çalışır ve switch biter; break yazmaya gerek yoktur.
let score = 87
switch score {
case 90...100:
print("A")
case 75..<90:
print("B")
case 60..<75:
print("C")
default:
print("F")
}
let letter: Character = "e"
switch letter {
case "a", "e", "i", "o", "u":
print("vowel")
default:
print("consonant")
}B vowel
Demet (tuple) birkaç değeri bir arada tutar; örneğin bir noktanın koordinatlarını: (0, 5). switch demetin parçalarını ayrı ayrı kontrol edebilir: _ “herhangi bir değer” demektir, let x değeri bir ada bağlar, where ise ek bir koşul koyar.
let point = (3, 3)
switch point {
case (0, 0):
print("origin")
case (0, _):
print("on the y-axis")
case (let x, 0):
print("on the x-axis at \(x)")
case let (x, y) where x == y:
print("on the diagonal")
default:
print("somewhere else")
}on the diagonal
`for-in` ve aralıklar
for-in döngüsü bir dizinin her elemanı için kodu bir kez çalıştırır. En basit dizi bir aralıktır: 1...5 1'den 5'e kadar (5 dâhil), 0..<5 ise 0'dan 4'e kadar (5 hariç) sayılardır. Adımı değiştirmek için stride(from:through:by:) fonksiyonu vardır.
for i in 1...3 {
print("Round \(i)")
}
var sum = 0
for n in 1...100 {
sum += n
}
print("Sum: \(sum)")
for n in stride(from: 10, through: 0, by: -5) {
print(n)
}
for ch in "Baku" {
print(ch, terminator: "-")
}
print("!")Round 1 Round 2 Round 3 Sum: 5050 10 5 0 B-a-k-u-!
`while`, `break` ve `continue`
Tekrar sayısı önceden bilinmiyorsa while kullanılır: koşul doğru olduğu sürece döngü devam eder. repeat-while koşulu sonda kontrol eder; bu yüzden gövde en az bir kez çalışır. Leyla her ay kumbarasına 20 manat koyuyor; 150 manata ulaşması kaç ay sürer?
var balance = 100
var months = 0
while balance < 150 {
balance += 20
months += 1
}
print("After \(months) months: \(balance) AZN")
var countdown = 3
repeat {
print(countdown)
countdown -= 1
} while countdown > 0
print("Go!")After 3 months: 160 AZN 3 2 1 Go!
continue döngünün o anki adımının geri kalanını atlayıp bir sonrakine geçer, break ise döngüyü tamamen durdurur. Aşağıdaki kod çift sayıları atlar ve 7'den büyük bir sayıya gelince durur:
for n in 1...10 {
if n % 2 == 0 {
continue
}
if n > 7 {
break
}
print(n)
}1 3 5 7
Önemli noktalar
if/else if/elsekoşula göre kod seçer; süslü parantezler zorunludur.&&(ve),||(veya),!(değil) koşulları birleştirir.switchdeğerleri, aralıkları ve demet kalıplarını kontrol eder, kapsamlı olmalıdır vebreakgerektirmez.1...55'i içerir,0..<5ise içermez.whilekoşulu başta,repeat-whilesonda kontrol eder;breakdöngüyü durdurur,continueadımı atlar.
Kendini test et
10 soru. Her doğru cevap XP kazandırır.
for i in 1..<4 döngüsünde i hangi değerleri alır?