English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل Kotlin الأساسي

تحكم Kotlin

الوظائف في Kotlin

السلاسل في Kotlin

Kotlin موجه الأشياء (OOP)

التعبير when في Kotlin

في هذا المقال، ستعرف من خلال مجموعة متنوعة من الأمثلة على تعبير when في Kotlin.

ما هو تعبير when في Kotlin

يمكن اعتبار تعبير when في Kotlinجملة switch في Javaبديلاً عن ذلك. يقيّم قطعة من الكود من العديد من البدائل.

مثال: تعبير when بسيط

fun main(args: Array<String>) {
    a = 12
    b = 5
    طباعة "العمليات المسموح بها في المدخل +، -, *، أو /"
    operator = readline()
    val result = when (operator) {
        "+" -> a + b
        "-" -> a - b
        "*" -> a * b
        "/" -> a / b
        else -> "$operator هو عميل غير صالح."
    }
    println("result = $result")
}

عندما تشغل البرنامج، سيكون الخروج كالتالي:

العمليات المسموح بها في المدخل +، -, *، أو /
*
result = 60

يأخذ البرنامج إدخال النص من المستخدم (موصى به قراءة:الحصول على إدخال النص من المستخدم في Kotlinإذا كان المستخدم يدخل *. في هذه الحالة، سيتم حساب التعبير a * b، وسيتم توزيع القيمة على المتغير result.

إذا لم يكن هناك فرع يلبي شرط التحقق (إذا كان المدخل المستخدم غير +، -، *، أو /)، سيتم تقييم فرع else.

في المثال السابق، استخدمنا when كتعبير. ولكن، when كتعبير ليس إلزاميًا. على سبيل المثال،

fun main(args: Array<String>) {
    a = 12
    b = 5
    طباعة "العمليات المسموح بها في المدخل +، -, *، أو /"
    operator = readline()
    عندما (operator) {
        "+" -> طباعة "$a + $b = ${a + b}"
        "-" -> طباعة "$a - $b = ${a - b}"
        "*" -> طباعة "$a * $b = ${a * b}"
        "/" -> طباعة "$a / $b = ${a / b}"
        else -> طباعة "$operator غير صالح"
    }
}

عندما تشغل البرنامج، سيكون الخروج كالتالي:

العمليات المسموح بها في المدخل +، -, *، أو /
-
12 - 5 = 7

في هذه الحالة، when ليس تعبيرًا (لم يتم تخصيص قيمة العودة من when لأي كائن). في هذه الحالة، ليست فرع else ضروري.

بعض السيناريوهات المحتملة

1. تجميع عدة شرطيات باستخدامomma.على سبيل المثال،

fun main(args: Array<String>) {
    n = -1
    when (n) {
        1, 2, 3 -> طباعة "n هو عدد إيجابي أقل من 4."
        0 -> طباعة "n هو صفر"
        -1, -2 -> طباعة "n هو عدد سالب أكبر من -3."
    }
}

عند تشغيل هذا البرنامج، يتم إخراج:

n هو عدد سالب أكبر من -3.

2. التحقق من القيم في النطاق.على سبيل المثال،

fun main(args: Array<String>) {
    a = 100
    عندما (a) {
        في 1..10 -> طباعة "A هو عدد إيجابي أقل من 11."
        في 10..100 -> طباعة "عدد إيجابي بين 10 و100 (بما في ذلك 10 و100)"
    }
}

عند تشغيل هذا البرنامج، يتم إخراج:

عدد إيجابي بين 10 و100 (بما في ذلك 10 و100)

3. التحقق من ما إذا كانت القيمة هي نوع معين.

للتحقق من نوع القيمة عند التنفيذ يمكن استخدام عمليات is و!is. على سبيل المثال،

عندما (x) {
    هو Int -> طباعة x + 1
    هو String -> طباعة x.length + 1
    هو Array Int -> طباعة x.sum()
}

4. استخدم التعبير كشروط فرعية.على سبيل المثال،

fun main(args: Array<String>) {
    val a = 11
    val n = "11"
    when (n) {
        "cat" -> println("Cat? Really?")
        12.toString() -> println("Close but not close enough.")
        a.toString() -> println("Bingo! It's eleven.")
    }
}

عند تشغيل هذا البرنامج، يتم إخراج:

Bingo! It's eleven.