Dizilere benzer şekilde sözlük elemanlarına da for in yapısı ile erişilebilir. Aşağıdaki örnek kod bu konuda bir fikir vermektedir:
FOR IN DÖNGÜ YAPISI İLE BİR STRINGİN KARAKTERLERİNE ERİŞMEK
For in yapısı yardımı ile, dizi, sözlük ve koleksiyondan sonra verilen bir stringin tek tek harf ya da karakterlerine de erişmek mümkündür. Aşağıdaki kod ve çıktısı bu konuda bir fikir vermektedir:
İÇ İÇE FOR DÖNGÜLERİ(NESTED FOR LOOPS)
Bir çok durumda for döngüleri uygulamanın özelliğine göre iç içe de kullanılabilir. İç içe döngüler ayrıca while ve do-while yardımı ile de oluşturulabilir.
ÖRNEK:
var i,j:Int
for i in 1...3 {
for j in stride(from:1, to: 10, by: 4) {
print("\(i)...\(j)...")
}
}
Programın çıktısı ise aşağıdadır:
1...1...1...5...1...9...
2...1...2...5...2...9...
3...1...3...5...3...9...
Bu tür bir iç içe for yapısında kural,en içteki döngünün en hızlı çalışmasıdır. Yukardaki örneğe bakarsak,
i=1 iken, j=1,5,9 olacaktır. Sonra i bir arttırılacak ve
i=2 iken gene j=1,5,9 değerlerini alacaktır. En son,
i=3 iken j=1,5,9 olacak ve iç içe döngüler tamamlanmış olacaktır.
ÖRNEK:
var i,j:Int
for i in 1...10 {
for j in 1...i {
print("*")
}
}
Bu programın çıktısı ise aşağıdaki gibi olacaktır:
*
**
***
****
*****
******
*******
********
*********
**********
Program ended with exit code: 0
ÖRNEK:
var i,j:Int
for i in stride(from:10, to: 1, by: -1) {
for j in 1...i {
print("*")
}
}
Programın çıktısı ise aşağıdadır:
**********
*********
********
*******
******
*****
****
***
**
*
Program ended with exit code: 0
ÖRNEK:
var i,j:Int
for i in 1...10 {
for j in 1...10 {
if i==j {
print("*")
} else {
print(" ")
}
}
}
Programın çıktısı ise aşağıdadır:
*
*
*
*
*
*
*
*
*
*
Program ended with exit code: 0
ÖRNEK:
var i,j:Int
for i in 1...10 {
for j in 1...10 {
if i+j == 11 {
print("*")
} else {
print(" ")
}
}
}
Programın çıktısı ise aşağıdaki gibi olacaktır:
*
*
*
*
*
*
*
*
*
*
Program ended with exit code: 0
ÖRNEK:
func fakt(n:Int)->Int {
var f=1;
for i in 1...n {
f=f*i
}
return f;
}
var i,j:Int
var k=3
for i in 1...4 {
for j in 1...3 {
print("\(k)!=\(fakt(n: k))");
print(" ")
k += 1
}
}
Programın çıktısı ise aşağıdadır:
3!=6 4!=24 5!=120
6!=720 7!=5040 8!=40320
9!=362880 10!=3628800 11!=39916800
12!=479001600 13!=6227020800 14!=87178291200
İLK N TANE ASAL (PRIME) SAYININ BULUNMASI
var i:Int=3
var n:Int=15
var say:Int
var c:Int=0
print("ILK \(n) ..ASAL SAYI")
for say in 2...n {
for c in 2...i- 1 {
if i % c == 0
{ break }
}
if c == i
{
print(" \(i)")
say += 1;
}
i += 1;
}
PROGRAMIN ÇIKTISI
ILK 15 ..ASAL SAYI
3
5
7
11
13
17
19
23
29
31
37
41
43
47
İÇİÇE ÜÇ FOR ÇEVRİMİ ÖRNEĞİ
var i,j,k:Int;
for i in 1...2 {
for j in 1...3 {
for k in 1...2 {
print("i=\(i)...j=\(j)...k=\(k)")
}
print("")
}
print("")
}
PROGRAMIN ÇIKTISI
i=1...j=1...k=1
i=1...j=1...k=2
i=1...j=2...k=1
i=1...j=2...k=2
i=1...j=3...k=1
i=1...j=3...k=2
i=2...j=1...k=1
i=2...j=1...k=2
i=2...j=2...k=1
i=2...j=2...k=2
i=2...j=3...k=1
i=2...j=3...k=2