step وdownTo
تحكّموا في التدرج
step وdownTo درس مجاني في Kotlin Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Kotlin Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Kotlin Academy 4 دروس في المجموع.
التحكم في التتابعات
يتقدم النطاق العادي بمقدار واحد وبترتيب تصاعدي. يتيح لك Kotlin تغيير حجم الخطوة والاتجاه كليهما.
الأداتان هما step وdownTo، وهما تنتجان تتابعات.
الدالة step
تغيّر step مقدار زيادة القيمة في كل مرة.
ينتج 0..10 step 2 القيم 0 و2 و4 و6 و8 و10.
fun main() {
val progression = 0..10 step 2
println(progression.toList())
}خطوة تتجاوز النهاية
قد لا تصل الخطوة إلى الحد الأعلى تمامًا. يتوقف التتابع ببساطة عند آخر قيمة تقع ضمن النطاق.
هل ينتهي 1..10 step 3 عند 10؟ لا، بل ينتهي عند أكبر قيمة يمكن الوصول إليها.
fun main() {
val progression = 1..10 step 3
println(progression.toList())
}الدالة downTo
تنشئ downTo تتابعًا تنازليًا.
ينتج 5 downTo 1 القيم 5 و4 و3 و2 و1.
fun main() {
val countdown = 5 downTo 1
println(countdown.toList())
}لماذا لا نعكس النطاق فحسب
يكون النطاق العادي مثل 5..1 فارغًا لأن البداية أكبر من النهاية.
للعد التنازلي، يجب استخدام downTo.
fun main() {
println((5..1).toList()) // empty
println((5 downTo 1).toList())
}الجمع بين downTo وstep
يمكنك إضافة step إلى التتابع التنازلي أيضًا.
تكون الخطوة دائمًا عددًا موجبًا؛ أما downTo فيتولى تحديد الاتجاه.
fun main() {
val progression = 10 downTo 0 step 2
println(progression.toList())
}يجب أن تكون الخطوة موجبة
يجب أن تكون قيمة الخطوة موجبة، حتى عند العد التنازلي. وتؤدي الخطوة الصفرية أو السالبة إلى إطلاق استثناء.
تحديد الاتجاه من مهمة .. أو downTo، وليس من إشارة الخطوة.
fun main() {
try {
val bad = 0..10 step 0
println(bad.toList())
} catch (e: IllegalArgumentException) {
println("step must be positive")
}
}التتابعات قابلة للتكرار
يمكن تكرار عناصر التتابع مباشرةً. وهذا هو الاستخدام الأكثر شيوعًا له.
فهو ينتج كل قيمة بالتتابع من دون إنشاء قائمة.
fun main() {
for (i in 10 downTo 1 step 3) {
print(i.toString() + " ")
}
println()
}فحص التتابع
يعرف التتابع قيم first وlast وstep الخاصة به.
لاحظ أن last قد تختلف عن النهاية المطلوبة عندما تتجاوزها الخطوة.
fun main() {
val p = 1..10 step 3
println(p.first)
println(p.last)
println(p.step)
}until مع step
تقبل until أيضًا قيمة للخطوة، ما يمنحك حدًا أعلى مستبعدًا وزيادةً مخصصة.
وهذا مفيد لأخذ عينات من الفهارس.
fun main() {
val p = 0 until 10 step 2
println(p.toList())
}جمع المفاهيم
تمنحك التتابعات تحكمًا كاملًا في التكرار:
- تحدد
stepمقدار الزيادة - يعد
downToتنازليًا - تكون الخطوة موجبة دائمًا
- يمكن جمعها معًا، كما يمكن تكرارها مباشرةً
fun main() {
for (i in 100 downTo 0 step 25) {
print(i.toString() + " ")
}
println()
}اختبار سريع
اختبر مدى فهمك لـ step وdownTo.
مراجعة
لقد تعلمت التحكم في التتابعات:
- تغيّر
stepمقدار الزيادة - ينتج
downToتسلسلًا تنازليًا - تكون قيمة الخطوة موجبة دائمًا
- يمكن الجمع بينهما وتكرارهما
ستستخدم بعد ذلك النطاقات لكتابة حلقات واضحة.
الأسئلة الشائعة
هل درس «step وdownTo» مجاني؟
نعم — نص درس «step وdownTo» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Kotlin Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Kotlin Academy 4 دروس في المجموع.
ماذا ستتعلم في «step وdownTo»؟
تحكّموا في التدرج تتمرن على Kotlin Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Kotlin Academy؟
لا تُشترط خبرة سابقة. Kotlin Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «step وdownTo»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Kotlin Academy هذا؟
نعم. كل درس في Kotlin Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.