5

حلقه‌ها و Range؛ تکرار بدون غر زدن

وقتی کامپیوتر می‌تونه ۱۰۰ بار کاری رو انجام بده، تو چرا باید مثل کارمند اداره کپی‌پیست کنی؟

درس 5 از 20

for با بازه

برای تکرار مشخص از `for` و range استفاده کن. `1..5` یعنی از ۱ تا ۵؛ دو نقطه پشت‌سرهم، نه اینکه کیبوردت گیر کرده باشه.

مثال را با چند مقدار دیگر هم امتحان کن؛ چون برنامه‌نویسی با نگاه کردن یاد گرفته نمی‌شود، با خراب کردن و درست کردن جا می‌افتد.

حلقه for
fun main() {
    for (i in 1..5) {
        println("مرحله $i")
    }
}
خروجی یا نتیجه اجرا
مرحله 1
مرحله 2
مرحله 3
مرحله 4
مرحله 5
نکته کاربردی: این بخش اسکلت ذهنی درس را می‌سازد. وقتی بدانی این قطعه دقیقاً چه مسئله‌ای را حل می‌کند، بعداً موقع پروژه فقط syntax حفظی تحویل نمی‌دهی؛ تصمیم درست می‌گیری. اگر خروجی با چیزی که انتظار داشتی فرق کرد، اول مقدار متغیرها و مسیر اجرا را چک کن؛ ۹۰٪ باگ‌های اول راه همین‌جا قایم شده‌اند.

step و downTo

اگر خواستی یکی‌درمیون بری جلو یا برعکس بشمری، `step` و `downTo` رفیق‌تن. مثل آسانسور که هم بالا می‌ره هم پایین؛ فقط گیر نکنه وسط راه.

مثال را با چند مقدار دیگر هم امتحان کن؛ چون برنامه‌نویسی با نگاه کردن یاد گرفته نمی‌شود، با خراب کردن و درست کردن جا می‌افتد.

range حرفه‌ای‌تر
for (i in 2..10 step 2) println(i)

for (i in 5 downTo 1) println("شمارش معکوس: $i")
خروجی یا نتیجه اجرا
2
4
6
8
10
شمارش معکوس: 5
شمارش معکوس: 4
شمارش معکوس: 3
شمارش معکوس: 2
شمارش معکوس: 1
نکته کاربردی: اینجا باید به رفتار کد نگاه کنی، نه فقط ظاهرش. مقدارها را عوض کن و دوباره اجرا بگیر تا دستت بفهمد برنامه چطور واکنش نشان می‌دهد. اگر خروجی با چیزی که انتظار داشتی فرق کرد، اول مقدار متغیرها و مسیر اجرا را چک کن؛ ۹۰٪ باگ‌های اول راه همین‌جا قایم شده‌اند.

while برای وقتی تعداد معلوم نیست

وقتی نمی‌دونی چند بار باید تکرار بشه، `while` خوبه. فقط شرط خروج رو یادت نره؛ حلقه بی‌نهایت مثل مهمونیه که نمی‌فهمه وقت رفتنه.

مثال را با چند مقدار دیگر هم امتحان کن؛ چون برنامه‌نویسی با نگاه کردن یاد گرفته نمی‌شود، با خراب کردن و درست کردن جا می‌افتد.

while
var tries = 0
while (tries < 3) {
    println("تلاش شماره ${tries + 1}")
    tries++
}
خروجی یا نتیجه اجرا
تلاش شماره 1
تلاش شماره 2
تلاش شماره 3
نکته کاربردی: این الگو در پروژه واقعی زیاد تکرار می‌شود. از همین حالا تمیز و خوانا بنویس تا بعداً موقع دیباگ، خودت به خودت فحش ندهی. اگر خروجی با چیزی که انتظار داشتی فرق کرد، اول مقدار متغیرها و مسیر اجرا را چک کن؛ ۹۰٪ باگ‌های اول راه همین‌جا قایم شده‌اند.

نتیجه این درس 🎯

حلقه یعنی کار تکراری را بسپاری به برنامه تا خودت مثل کارگر معدن تکرار نکنی. Rangeها هم کنترل شروع، پایان، قدم و شمارش معکوس را تمیز می‌کنند.

تمرین! 🧠

اعداد زوج ۲ تا ۲۰ را چاپ کن.

جواب تمرین
fun main() {
    for (number in 2..20 step 2) {
        println(number)
    }
}
خروجی جواب
2
4
6
8
10
12
14
16
18
20