در جلسات قبل با حلقههای تکرار For-Loop آشنا شدید،این حلقهها شرطی را بررسی،سپس در صورت برقرار بودن آن شرط،دستوراتی را مکررا اجرا میکردند.این نوع حلقهها با تمرکز بر تعداد تکرار،همچنین درست بودن شرط (true) بسیار کاربرد دارند.اما نوع دیگری از حلقهها وجود دارند که در ادامه با آنها آشنا میشوید.
حلقههای تکرار while دو نوع دارد:
While :ابتدا شرط را بررسی، سپس دستورات را اجرا میکند،تا زمانی که شرط برقرار باشد.
Do-While :ابتدا دستورات را اجرا،سپس شرط را برای تکرار دستورات بررسی میکند.(حداقل یکبار دستورات اجرا میشود)
حلقهی تکرار While :
ساختار while به صورت زیر میباشد :
در تصویر بالا میبینیم که این حلقه با کلیدواژهی while (به معنای: تا زمانی که) شروع میشود،سپس شرط را نوشته و همانند قبل دستورات درون علامت کروشه نوشته میشود،مثال زیر گویا خواهد بود:
var Num = 2 while Num < 1000 { Num = Num * 2 } print(Num)
در مثال بالا، ابتدا متغیری تعریف کردیم که حاوی مقدار عددی ۲ میباشد،سپس با استفاده از while، دستوری نوشتیم که عدد ۲ را آنقدر در مضارب خود ضرب میکند که این مضرب به عدد ۱۰۰۰ برسد،عمل ضرب در این مثال ۹ بار اجرا خواهد شد. و در آخر نیز جواب را با دستور ()print چاپ میکنیم.
برای درک بهتر، خروجی ضربها را مشاهده کنید:
حلقههای تکرار Do-While :
ساختار این نوع از حلقهها به صورت زیر است:
همانطور که در ابتدای این جلسه گفته شد،در این نوع حلقهها، دستورات حداقل یکبار اجرا خواهند شد،چرا که در ساختار DO-While ابتدا گفته میشود: Do (انجام بده)،سپس دستورات اجرا، و در ادامه با اضافه کردن کلیدواژهی while شرط برای تکرار بعدی حلقه بررسی میشود.
[بروزرسانی] : در تغییرات جدید زبان سویفت، موسوم به سویفت ۲ این دستور تغییر نام داده است و از DO-While به repeat-while تبدیل شده است، نگران نباشید،کاربرد این دستور تغییری نکرده است، صرفا باید به خاطر داشته باشید پس از نصب Xcode ورژن ۷ به بعد، این دستور را باید به شکل زیر بنویسید :
repeat{
// statement
}while //Condition
برای درک بهتر, مثال قبل را با استفاده از حلقهی Do-While مینویسیم: [توجه کنید دستور زیر در صورتی اجرا خواهد شد که شما از اکس کد ورژن ۷ به قبل استفاده کنید، در غیر این صورت همین مثال با تغییرات مناسب ورژن ۷ به بعد در زیر نوشته شده است]
var Num = 2 do { Num = Num * 2 } while Num < 1000 print(Num)
همین مثال اما با تغییرات جدید در سویفت ۲ :[قابل اجرا در اکس کد ۷ به بعد]
var Num = 2
repeat {
Num = Num * 2
}
while Num < 1000
print(Num)
نکته: تغییرات ذکر شده در دستور بالا زمانی اجرا خواهد شد که شما xcode ورژن ۷ به بالا را در اختیار داشته باشید.
در مثال بالا ابتدا یکبار دستور (2 * Num = Num) اجرا میشود، سپس برای اجرای دوم این دستور، لازم است شرط (1000 > Num) برقرار باشد. و در آخرنتیجهی این حلقه را چاپ میکنیم،در محیط playground این دستورات را نوشته و تفاوتها را در زمان اجرا مشاهده کنید.
- یادآوری:دوستان عزیزی که ابتدا پست های جدید رو مطالعه میکنند،توجه کنید که برای دیدن پست های قبلی و ابتدای این دوره آموزشی، باید به پایینی ترین پست مراجعه کنید و به صفحات قبل برگردید،چرا که ترتیب کلاسها بسیار حائز اهمیت است .