0Pricing
Zig Academy · درس

‏break وcontinue والحلقات ذات التسميات

تحكموا في الحلقات بدقة باستخدام التسميات

‏break وcontinue والحلقات ذات التسميات درس مجاني في Zig Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Zig Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Zig Academy 4 دروس في المجموع.

أداتا تحكم في الحلقات

داخل أي حلقة، تُخرج break التنفيذ من الحلقة بالكامل، بينما تنقلك continue إلى الدورة التالية. وتمنحك الأداتان تحكمًا دقيقًا في التدفق. 🎛️

تخرج break فورًا

عند تنفيذ break، تتوقف الحلقة فورًا ويُستأنف التنفيذ في السطر الذي يلي الحلقة مباشرة. ولا يُنفّذ أي شيء آخر في الجسم.

for (items) |x| {
    if (x == 0) break;
    use(x);
}

تتجاوز continue الدورة الحالية

تتخلى continue عن بقية الدورة الحالية وتنتقل إلى الدورة التالية، مع إبقاء الحلقة نفسها قيد التشغيل.

for (items) |x| {
    if (x < 0) continue;
    total += x;
}

تستهدفان الحلقة الداخلية الأقرب

تؤثر break وcontinue افتراضيًا في الحلقة الداخلية الأقرب المحيطة بهما فقط. وتستمر الحلقة الخارجية في العمل كما لو لم يحدث شيء.

تسمية حلقة

يمكنك إرفاق تسمية بحلقة باستخدام اسم ونقطتين. وتمنحك هذه التسمية وسيلة لاستهداف الحلقة من داخل أعمق.

outer: for (rows) |row| {
    for (row) |cell| {
        check(cell);
    }
}

break إلى تسمية

اكتب break :outer للخروج مباشرة من حلقة خارجية مسماة من داخل حلقة متداخلة. وتفك عبارة واحدة كلا المستويين.

outer: for (rows) |row| {
    for (row) |cell| {
        if (cell == target) break :outer;
    }
}

continue إلى تسمية

استخدم continue :outer للانتقال إلى الدورة التالية من حلقة خارجية مسماة، متجاوزًا بقية الحلقة الداخلية فورًا.

التسميات تستبدل العلامات

قبل استخدام التسميات، ربما كنت تضبط علامة found وتفحصها بعد كل حلقة. ويزيل break المسمى هذا التكرار البرمجي ويجعل الكود أوضح.

يعيد break المسمى قيمة

يمكن أن تكون الحلقة المسماة تعبيرًا أيضًا. إذ يمرر break :outer value تلك القيمة لتصبح نتيجة الحلقة المسماة بأكملها.

const hit = outer: for (rows) |row| {
    for (row) |c| {
        if (c == target) break :outer c;
    }
} else 0;

الكتل يمكن تسميتها أيضًا

لا تقتصر التسميات على الحلقات. يمكن تسمية كتلة عادية، ويحوّل break مع قيمة تلك الكتلة إلى تعبير.

const x = blk: {
    const t = compute();
    break :blk t * 2;
};

أبقِ التداخل سطحيًا

التحكم باستخدام التسميات قوي، لكن الحلقات المتداخلة بعمق تضر بقابلية القراءة. استخدم التسميات عندما توضّح الكود، لا لتبرير الكود المتشابك.

تحقق سريع

من حلقة داخلية، تريد الخروج من الحلقة الخارجية المسماة outer. ما العبارة التي تنفّذ ذلك؟

مراجعة

أتقنت استخدام break وcontinue: تستهدفان الحلقة الأقرب افتراضيًا، وتستخدم الحلقات المسماة مع التداخل، وعبارات break المسماة التي تُرجع قيمة، والكتل المسماة. 🎯

الأسئلة الشائعة

هل درس «‏break وcontinue والحلقات ذات التسميات» مجاني؟

نعم — نص درس «‏break وcontinue والحلقات ذات التسميات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Zig Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Zig Academy 4 دروس في المجموع.

ماذا ستتعلم في «‏break وcontinue والحلقات ذات التسميات»؟

تحكموا في الحلقات بدقة باستخدام التسميات تتمرن على Zig Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Zig Academy؟

لا تُشترط خبرة سابقة. Zig Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «‏break وcontinue والحلقات ذات التسميات»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Zig Academy هذا؟

نعم. كل درس في Zig Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. ‏if بوصفها تعليمة وتعبيراً
  2. حلقات while وتعبيرات continue
  3. حلقات for على النطاقات والعناصر
  4. ‏break وcontinue والحلقات ذات التسميات
← العودة إلى Zig Academy