if,else if,elsevə məntiqi operatorlarla şərtlər yazmaqswitchilə qiymətləri, diapazonları və nümunələri yoxlamaqfor-in,whilevərepeat-whiledövrlərini diapazonlarla birlikdə işlətmək
Telefonun qaranlıq düşəndə ekranı özü qaraldır, zəngli saat isə hər səhər eyni vaxtda çalır. Birinci halda proqram qərar verir, ikincidə isə işi təkrarlayır. Bu iki bacarıq istənilən proqramın əsasıdır və bu dərsdə onları Swift-də necə yazmağı öyrənəcəksən.
`if` ilə qərar vermək
if şərti yoxlayır: şərt true-dursa, fiqurlu mötərizələrdəki kod icra olunur. else if növbəti şərti, else isə «heç biri doğru olmadısa» halını yazır. Swift-də şərti mötərizəyə almaq lazım deyil, amma fiqurlu mötərizələr { } hər zaman məcburidir.
let temperature = 28
if temperature > 30 {
print("Very hot")
} else if temperature > 20 {
print("Warm")
} else {
print("Cool")
}Warm
Şərtlərdə müqayisə operatorlarından istifadə olunur: == (bərabərdir), != (bərabər deyil), <, >, <=, >=. Bir neçə şərti birləşdirmək üçün məntiqi operatorlar var: && (və), || (və ya), ! (inkar).
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
&& operatoru AND qapısı kimi işləyir: nəticə yalnız hər iki giriş doğru olanda doğrudur. OR (||) və NOT (!) qapılarını da yoxla.`switch` və nümunələr
Bir qiyməti çoxlu variantla müqayisə etmək lazım olanda switch daha oxunaqlıdır. Swift-in switch-i çox güclüdür: case bir neçə qiyməti, diapazonu (90...100) və hətta kortej nümunəsini yoxlaya bilər. Uyğun gələn ilk case icra olunur, sonra switch bitir — break yazmağa ehtiyac yoxdur.
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
Kortej bir neçə qiyməti bir yerdə saxlayır, məsələn, nöqtənin koordinatları: (0, 5). switch kortejin hissələrini ayrı-ayrılıqda yoxlaya bilər: _ «istənilən qiymət» deməkdir, let x qiyməti ada bağlayır, where isə əlavə şərt qoyur.
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` və diapazonlar
for-in dövrü ardıcıllığın hər elementi üçün kodu bir dəfə icra edir. Ən sadə ardıcıllıq diapazondur: 1...5 1-dən 5-ə qədər (5 daxil), 0..<5 isə 0-dan 4-ə qədər (5 daxil deyil) ədədlərdir. Addımı dəyişmək üçün stride(from:through:by:) funksiyası var.
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` və `continue`
Təkrarların sayı əvvəlcədən məlum olmayanda while işlədilir: şərt doğru olduqca dövr davam edir. repeat-while isə şərti sonda yoxlayır, ona görə gövdə ən azı bir dəfə icra olunur. Leyla hər ay pul qutusuna 20 manat qoyur — 150 manata çatmaq üçün neçə ay lazımdır?
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övrün cari addımının qalanını buraxıb növbətinə keçir, break isə dövrü tamamilə dayandırır. Aşağıdakı kod cüt ədədləri buraxır və 7-dən böyük ədədə çatanda dayanır:
for n in 1...10 {
if n % 2 == 0 {
continue
}
if n > 7 {
break
}
print(n)
}1 3 5 7
Əsas fikirlər
if/else if/elseşərtə görə kodu seçir; fiqurlu mötərizələr məcburidir.&&(və),||(və ya),!(inkar) şərtləri birləşdirir.switchqiymətləri, diapazonları və kortej nümunələrini yoxlayır, tam olmalıdır vəbreaktələb etmir.1...55-i daxil edir,0..<5isə daxil etmir.whileşərti əvvəldə,repeat-whilesonda yoxlayır;breakdövrü dayandırır,continueaddımı buraxır.
Özünü yoxla
10 sual. Hər düzgün cavab XP qazandırır.
for i in 1..<4 dövründə i hansı qiymətləri alır?