Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

الخطوة (Stride)

جزء من قسم المنطق والتدفق في رحلة Swift على Coddy — الدرس 8 من 56.

ينتقل النطاق خطوة واحدة في كل مرة. عندما تريد حجم خطوة مختلفًا، أو للعد تنازليًا، استخدم stride.

طريقتان: stride(from:to:by:) يتوقف قبل القيمة الثانية (نصف مفتوح)، بينما stride(from:through:by:) قد يتضمنها (مغلق):

for n in stride(from: 0, to: 10, by: 2) {
    print(n)
}
// 0, 2, 4, 6, 8
for n in stride(from: 10, through: 0, by: -2) {
    print(n)
}
// 10, 8, 6, 4, 2, 0

يجب أن يكون المعامل by: بالإشارة الصحيحة: موجباً عند العد التصاعدي، وسالباً عند العد التنازلي. في حال عدم التطابق، ستعمل الحلقة التكرارية صفر من المرات.

challenge icon

التحدي

سهل

اقرأ ثلاثة أعداد صحيحة (ثلاثة أسطر): start، end، و step. قد تكون الخطوة موجبة أو سالبة. النطاق شامل لكلا الطرفين (استخدم stride(from:through:by:)).

اطبع:

  1. القيم الموجودة في الـ stride، مفصولة بـ ,
  2. عدد القيم الناتجة

للمدخلات 0 / 10 / 3، المخرجات هي:

0,3,6,9
4

للمدخلات 10 / 0 / -2، المخرجات هي:

10,8,6,4,2,0
6

ورقة مرجعية

استخدم stride عندما تحتاج إلى حجم خطوة مخصص أو للعد التنازلي.

stride(from:to:by:) — نصف مفتوح (يستثني قيمة النهاية):

for n in stride(from: 0, to: 10, by: 2) { }
// 0, 2, 4, 6, 8

stride(from:through:by:) — مغلق (يتضمن قيمة النهاية):

for n in stride(from: 10, through: 0, by: -2) { }
// 10, 8, 6, 4, 2, 0

يجب أن تتطابق قيمة by: مع الاتجاه: موجبة عند العد التصاعدي، وسالبة عند العد التنازلي. يؤدي عدم التطابق إلى صفر من التكرارات.

جرّب بنفسك

let start = Int(readLine()!)!
let end = Int(readLine()!)!
let step = Int(readLine()!)!

// TODO: stride(from:through:by:)، ادمجها بفاصلة، ثم اطبع العدد
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المنطق والتدفق