كسر الحلقات المُعنونة
جزء من قسم المنطق وتدفق التنفيذ في رحلة Kotlin على Coddy. الدرس 42 من 63.
تخرج عبارة break العادية من الحلقة الأقرب فقط. امنح الحلقة الخارجية تسمية مثل search@، ثم استخدم break@search داخل حلقة متداخلة للخروج من البحث بأكمله عند الوصول إلى هدفه. تنتمي التسمية إلى الحلقة التي تليها مباشرةً.
داخل main:
var found = -1
search@ for (row in listOf(listOf(1, 4), listOf(6, 8))) {
for (value in row) {
if (value % 2 == 0) {
found = value
break@search
}
}
}
println(found)أربعة هي أول قيمة زوجية حسب ترتيب الصفوف، وتجاوز التعليمة break ذات التسمية الصفوف المتبقية.
تخرج عبارة break المُسمّاة من الحلقة ذات التسمية المحددة، بما في ذلك العمل المتداخل فيها.
التحدي
متوسطأكمل firstEven باستخدام المعاملات grid: List<List<Int>>. اعثر على أول قيمة زوجية بترتيب الصفوف، باستخدام تعليمة كسر ذات تسمية لإيقاف الحلقتين معًا. أعد -1 إذا لم توجد مطابقة. تُحتسب القيم الزوجية الصفرية والسالبة.
ما لم تُذكر حدود أكثر صرامة أعلاه، تحتوي المجموعات على 100 عنصر كحد أقصى في كل مستوى، وتكون المعاملات الصحيحة وقيم المجموعات الصحيحة بين -1000 و1000. يمكن أن يتضمن النص المُدخل للتحليل تمثيلات غير صالحة أو خارجة عن النطاق كما هو موضح.
أعد قيمة من النوع Int. أبقِ كود الإدخال/الإخراج المُقدَّم. فهو يقرأ المعاملات المفردة، معاملًا واحدًا في كل سطر؛ وتبدأ القائمة بعدد عناصرها متبوعًا بعناصرها، وتبدأ الخريطة بعدد إدخالاتها متبوعًا بكل مفتاح وقيمة. تكرر القوائم المتداخلة تنسيق العدد والعناصر لكل صف. تطبع main المُقدَّمة قيمة الإرجاع متبوعة بسطر جديد واحد. تستخدم القوائم التنسيق القياسي ذي الأقواس المربعة في Kotlin؛ ولا تطبع أي تسميات إضافية.
جرّب بنفسك
fun firstEven(grid: List<List<Int>>): Int {
// اكتب حلك هنا.
return 0
}
fun main() {
val gridCount = readln().toInt()
val grid = mutableListOf<List<Int>>()
for (i0 in 0 until gridCount) {
val gridItemCount = readln().toInt()
val gridItem = mutableListOf<Int>()
for (i1 in 0 until gridItemCount) {
val gridItemItem = readln().toInt()
gridItem.add(gridItemItem)
}
grid.add(gridItem)
}
println(firstEven(grid))
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفق التنفيذ
1القواميس، الجزء الأول
إنشاء القواميسالبحث الآمن في القواميستحديث القواميسالتحقق من المفاتيحمراجعة - مكتب الأسهم4المجموعات المتداخلة
قوائم القوائماستعراض الصفوفملخصات الصفوفتسطيح القوائم المتداخلةمراجعة - صفوف المقاعد7مسارات معالجة المجموعات
التحويل باستخدام Mapتصفية القيماختبار قواعد المجموعاتالتجميع باستخدام Foldمراجعة - الإجماليات المعتمدة2الخرائط - الجزء الثاني
التكرار على إدخالات الخريطةالمفاتيح والقيمخرائط التكرارالخرائط المتداخلةمراجعة - تقرير التكرار5مشروع - دفتر جهات الاتصال
حفظ جهات الاتصالالعثور على جهات الاتصال3المجموعات والعضوية
إنشاء المجموعاتتحديث المجموعاتعمليات المجموعاتالتحقق من المجموعة الجزئيةمراجعة - ضيوف الفعالية9تدفق التحكم المتقدم
عبارات الحراسةكسر الحلقات المُعنونةمتابعة الحلقات المُعنونةالدوال التكراريةمراجعة - الصف الأول الصالحتدرّب بنفسك: Playground لـ Kotlin