حلقه for…in

یکی دیگر از ساختارهای تکرار، حلقه for است. این حلقه عملی شبیه به حلقه while انجام می‌دهد و از آن برای گردش در میان یک مجموعه (collection) یا محدوده (range) استفاده می شود. ساختار حلقه for به صورت زیر است :

for (item in collection/range)
{ 
    //Some Code
}

در زیر یک مثال از حلقه for آمده است:

 1: for i in 1...10
 2: {
 3:     print("Number \(i)")
 4: }
Number 1
Number 2
Number 3
Number 4
Number 5
Number 6
Number 7
Number 8
Number 9
Number 10

برنامه بالا اعداد 1 تا 10 را با استفاده از حلقه for چاپ می کند. در خط 1، همانطور که مشاهده می کنید عبارت 10…1 آمده است که در اصل یک محدود است. برای ایجاد یک محدوده در Swift ابتدا و انتهای مجموعه را مشخص کرده و سپس با استفاده از علامت … از هم جدا می کنیم. عبارت 10…1 به معنای محدود اعداد از 1 تا 10 است. در کل معنای خط 1 این است که به ازای اعداد 1 تا 10 … فلان کار را انجام بده. چه کاری؟ کاری که در خط 3 خواسته ایم و آن چاپ مقدار اعداد این محدود است. در اصل در خط 1 با هر تکرار یکی از اعداد مجموعه در داخل متغیر موقتی i قرار می گیرد و در خط 3 چاپ می شود و این کار تا چاپ آخرین مقدار یعنی 10 ادامه می یابد. اگر بخواهید عدد انتهای محدود یعنی 10 چاپ نشود باید از کلمه > استفاده نمایید:

for i in 1..<10

از حلقه for برای چاپ حروف یک رشته هم می توان استفاده کرد. چون رشته یک مجموعه از کاراکترهاست:

for letter in "Hello World!"
{
    print(letter)
}
H
e
l
l
o
 
W
o
r
l
d
!

می توان با استفاده از کلمه کلیدی where یک شرط هم به حلقه for اضافه کرد. به کد زیر توجه کنید:

for num in 0..<10 where (num % 2 == 0) 
{
    print(num)    
}
0
2
4
6
8

خط اول کد بالا را به این صورت بخوانید: "اعدادی بین 0 تا 10 را می خواهم به شرطی (where) که باقیمانده تقسیم آنها بر 2 برابر 0 باشد" . در نتیجه کد بالا فقط اعداد زوج را چاپ می کند.