Kotlin når uttrykk (med eksempler)

I denne artikkelen vil du lære om når du konstruerer i Kotlin ved hjelp av forskjellige eksempler.

Kotlin når konstruere

Den whenkonstruere i Kotlin kan være tenkt som en erstatning for Java bryter uttalelse. Den evaluerer et avsnitt med kode blant mange alternativer.

Eksempel: Enkelt når uttrykk

 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 kjører programmet, vil utdataene være omtrent som:

 Skriv inn operatør enten +, -, * eller / * resultat = 60

Programmet ovenfor tar en inngangsstreng fra brukeren (anbefalt lesing: Få strenginngang fra brukeren i Kotlin). Anta at brukeren kom inn *. I dette tilfellet blir uttrykket a * bevaluert, og verdien tilordnes variabelt resultat.

Hvis ingen av avdelings vilkår er oppfylt (bruker oppgitt noe unntak +, -, *, eller /), elsefilial evalueres.

I eksemplet ovenfor brukte vi whensom et uttrykk. Det er imidlertid ikke obligatorisk å bruke whensom et uttrykk. For eksempel,

 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 kjører programmet, vil utdataene være omtrent som:

 Skriv inn operatør enten +, -, * eller / - 12 - 5 = 7 

Her whener ikke et uttrykk (returverdien fra whener ikke tildelt noe). I dette tilfellet er elsegrenen ikke obligatorisk.

Få muligheter

Kombiner to eller flere grenforhold med komma. For eksempel,

 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 kjører programmet, vil utdataene være:

 n er et negativt heltall større enn 3.

Kontroller verdien i området. For eksempel,

 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 kjører programmet, vil utdataene være:

 Et positivt tall mellom 10 og 100 (inkludert)

Sjekk om en verdi er av en bestemt type.

For å sjekke om en verdi er av en bestemt type i kjøretid, kan vi bruke er og! Er operatør. For eksempel,

 når (x) (er Int -> utskrift (x + 1) er streng -> utskrift (x.lengde + 1) er IntArray -> utskrift (x.sum ())) 

Bruk uttrykk som grenforhold. For eksempel,

 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 kjører programmet, vil utdataene være:

Bingo! Det er elleve.

Interessante artikler...