У овом чланку ћете научити о томе када се гради у Котлину уз помоћ различитих примера.
Котлин кога конструише
when
Конструкт у котлин се може посматрати као замена за Јава прекидач изјаве. Процењује део кода међу многим алтернативама.
Пример: Једноставно када је израз
fun main(args: Array) ( val a = 12 val b = 5 println("Enter operator either +, -, * or /") val operator = readLine() val result = when (operator) ( "+" -> a + b "-" -> a - b "*" -> a * b "/" -> a / b else -> "$operator operator is invalid operator." ) println("result = $result") )
Када покренете програм, излаз ће бити отприлике:
Унесите оператор или +, -, * или / * резултат = 60
Горњи програм узима улазни низ од корисника (препоручено читање: Добијте унос низа од корисника у Котлину). Претпоставимо да је корисник ушао *
. У овом случају, израз a * b
се процењује, а вредност се додељује променљивој резултат.
Ако се ниједан од услова гранских задовољан (корисник ушао ништа осим +
, -
, *, или /
), else
огранак се процењује.
У горњем примеру смо користили when
као израз. Међутим, није обавезно користити when
као израз. На пример,
fun main(args: Array) ( val a = 12 val b = 5 println("Enter operator either +, -, * or /") val operator = readLine() when (operator) ( "+" -> println("$a + $b = $(a + b)") "-" -> println("$a - $b = $(a - b)") "*" -> println("$a * $b = $(a * b)") "/" -> println("$a / $b = $(a / b)") else -> println("$operator is invalid") ) )
Када покренете програм, излаз ће бити отприлике:
Унесите оператор или +, -, * или / - 12 - 5 = 7
Овде when
није израз (повратна вредност од when
није додељена ни за шта). У овом случају, else
огранак није обавезан.
Мало могућности
Комбинујте два или више услова гране зарезом. На пример,
fun main(args: Array) ( val n = -1 when (n) ( 1, 2, 3 -> println("n is a positive integer less than 4.") 0 -> println("n is zero") -1, -2 -> println("n is a negative integer greater than 3.") ) )
Када покренете програм, излаз ће бити:
н је цео негативни број већи од 3.
Проверите вредност у опсегу. На пример,
fun main(args: Array) ( val a = 100 when (a) ( in 1… 10 -> println("A positive number less than 11.") in 10… 100 -> println("A positive number between 10 and 100 (inclusive)") ) )
Када покренете програм, излаз ће бити:
Позитиван број између 10 и 100 (укључујући)
Проверите да ли је вредност одређеног типа.
Да бисмо проверили да ли је вредност одређеног типа током извршавања, можемо да користимо оператор ис и! Ис. На пример,
када је (к) (је Инт -> принт (к + 1) Стринг -> принт (к.ленгтх + 1) је ИнтАрраи -> принт (к.сум ()))
Користите изразе као услов гране. На пример,
fun main(args: Array) ( 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.") ) )
Када покренете програм, излаз ће бити:
Бинго! Једанаест је.