Menu
CoddyTech

الخروج من الحلقات المتداخلة

جزء من قسم المنطق وتدفق التنفيذ في رحلة GO على Coddy. الدرس 2 من 68.

عند العمل مع الحلقات المتداخلة، لا تُنهي عبارة break العادية إلا الحلقة الداخلية. ومع ذلك، توفّر Go تسميات تتيح لك الخروج مباشرةً من الحلقات الخارجية، مما يمنحك تحكمًا دقيقًا في بُنى الحلقات المعقدة.

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

outer:
for i := 0; i < 3; i++ {
    for j := 0; j < 3; j++ {
        if i == 1 && j == 1 {
            break outer
        }
        fmt.Printf("i=%d, j=%d\n", i, j)
    }
}

في هذا المثال، عندما يتحقق الشرط i == 1 && j == 1، تنهي break outer الحلقتين الداخلية والخارجية فورًا. وهذا مفيد بشكل خاص عند البحث في هياكل بيانات ثنائية الأبعاد، عندما تريد إيقاف البحث تمامًا بمجرد العثور على ما تبحث عنه.

challenge icon

التحدي

سهل

في هذا التحدي، ستتدرّب على استخدام عبارات break ذات التسمية للخروج من الحلقات المتداخلة عند البحث في شبكة ثنائية الأبعاد. عليك العثور على رقم مستهدف محدد في الشبكة والتوقف عن البحث فور العثور عليه.

ستتلقى مُدخلين:

  • سلسلة تمثل أبعاد الشبكة بالتنسيق "rows,cols" (مثلًا، "3,4")
  • سلسلة تمثل الرقم المستهدف الذي تبحث عنه (مثلًا، "7")

تتوفر لديك شبكة الأرقام الثنائية الأبعاد التالية:

grid := [][]int{
    {1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 11, 12},
}

مهمتك هي:

  1. استخدام القيم التي قُرئت لك مسبقًا في الشيفرة أعلاه: rows وcols (مقدار الجزء الذي ستبحث فيه من الشبكة)، وtarget، وgrid
  2. استخدام حلقات متداخلة مع عبارة break ذات تسمية للبحث في الشبكة
  3. عندما تعثر على الرقم المستهدف، اطبع "Found [target] at position ([row], [col])" واخرج فورًا من الحلقتين باستخدام عبارة break ذات التسمية
  4. إذا أكملت البحث دون العثور على الرقم المستهدف، فاطبع "Target [target] not found"

يجب الإبلاغ عن الموضع باستخدام فهرسة تبدأ من 0 (الصف الأول هو 0، والعمود الأول هو 0).

جرّب بنفسك

    // TODO: اكتب الكود الخاص بك أدناه
    // استخدم حلقات متداخلة مع تعليمة break ذات تسمية للبحث عن الهدف
quiz iconاختبر نفسك

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

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

تدرّب بنفسك: مترجم Go عبر الإنترنت