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

عبارات الحراسة

جزء من قسم المنطق وتدفق التنفيذ في رحلة Kotlin على Coddy. الدرس 41 من 63.

تُرجع عبارة الحراسة النتيجة مبكرًا عندما يتعذّر على الإدخال اتباع المسار الرئيسي. يمكن أن يقلّل التحقق من الحالات الاستثنائية أولًا من الشروط المتداخلة. يؤدي return إلى مغادرة الدالة الحالية، لذلك لا تُنفَّذ العبارات اللاحقة في تلك الدالة.

fun deliveryFee(items: Int): Int {
    if (items < 0) return -1
    return items * 2
}

داخل main:

println(deliveryFee(-1))

يؤدي الإدخال السالب إلى تفعيل الحارس ويمنع حساب الرسوم بالطريقة العادية.

تُنهي عبارة الحراسة الدالة قبل المسار المعتاد عندما يتحقق شرطها.

challenge icon

التحدي

متوسط

أكمل firstOrMissing باستخدام المعامل values: List<Int>. أرجِع ‎-1‎ للقائمة الفارغة باستخدام عبارة حراسة. وإلا فأرجِع القيمة الأولى.

ما لم تُذكر حدود أكثر صرامة أعلاه، تحتوي المجموعات على 100 عنصر كحد أقصى في كل مستوى، وتكون المعاملات الصحيحة وقيم المجموعات الصحيحة بين ‎-1000‎ و‎1000‎. يمكن أن يتضمن النص المُقدَّم للتحليل تمثيلات غير صالحة أو خارج النطاق كما هو موضح.

أرجِع قيمة من النوع Int. أبقِ كود الإدخال/الإخراج المُقدَّم كما هو. يقرأ الوسائط العددية واحدًا في كل سطر؛ وتبدأ القائمة بعدد عناصرها متبوعًا بعناصرها، وتبدأ الخريطة بعدد إدخالاتها متبوعًا بكل مفتاح وقيمة. تكرر القوائم المتداخلة تنسيق العدد والعناصر لكل صف. تطبع الدالة main المُقدَّمة القيمة المُرجَعة متبوعة بسطر جديد واحد. تستخدم القوائم التنسيق القياسي ذي الأقواس في Kotlin؛ ولا تطبع أي تسميات إضافية.

جرّب بنفسك

fun firstOrMissing(values: List<Int>): Int {
    // اكتب حلك هنا.
    return 0
}
fun main() {
    val valuesCount = readln().toInt()
    val values = mutableListOf<Int>()
    for (i0 in 0 until valuesCount) {
        val valuesItem = readln().toInt()
        values.add(valuesItem)
    }
    println(firstOrMissing(values))
}
quiz iconاختبر نفسك

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

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

تدرّب بنفسك: Playground لـ Kotlin