Kotlin när uttryck (med exempel)

I den här artikeln kommer du att lära dig mer om när du konstruerar i Kotlin med hjälp av olika exempel.

Kotlin när konstruera

Den whenkonstruktion i Kotlin kan ses som en ersättning för Java switch uttalande. Den utvärderar en kodsektion bland många alternativ.

Exempel: Enkelt när uttryck

 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") ) 

När du kör programmet blir resultatet ungefär som:

 Ange operatören antingen +, -, * eller / * resultat = 60

Programmet ovan tar en inmatningssträng från användaren (Rekommenderad läsning: Få stränginmatning från användaren i Kotlin). Antag att användaren angav *. I det här fallet a * butvärderas uttrycket och värdet tilldelas variabelt resultat.

Om inget av grenvillkoren uppfylls (användar in något annat än +, -* eller /), elsegren utvärderas.

I exemplet ovan använde vi whensom ett uttryck. Det är dock inte obligatoriskt att använda whensom ett uttryck. Till exempel,

 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") ) )

När du kör programmet blir resultatet ungefär som:

 Ange operatör antingen +, -, * eller / - 12 - 5 = 7 

Här whenär inte ett uttryck (returvärdet från whentilldelas ingenting). I det här fallet är elsefilialen inte obligatorisk.

Få möjligheter

Kombinera två eller flera grenförhållanden med ett komma. Till exempel,

 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.") ) )

När du kör programmet blir resultatet:

 n är ett negativt heltal större än 3.

Kontrollera värdet i intervallet. Till exempel,

 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)") ) )

När du kör programmet blir resultatet:

 Ett positivt tal mellan 10 och 100 (inklusive)

Kontrollera om ett värde är av en viss typ.

För att kontrollera om ett värde är av en viss typ under körning kan vi använda är och! Är operatör. Till exempel,

 när (x) (är Int -> print (x + 1) är String -> print (x.längd + 1) är IntArray -> print (x.sum ())) 

Använd uttryck som grenvillkor. Till exempel,

 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.") ) )

När du kör programmet blir resultatet:

Bingo! Det är elva.

Intressanta artiklar...