I denne artikkelen vil du lære om når du konstruerer i Kotlin ved hjelp av forskjellige eksempler.
Kotlin når konstruere
Den when
konstruere 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 * b
evaluert, og verdien tilordnes variabelt resultat.
Hvis ingen av avdelings vilkår er oppfylt (bruker oppgitt noe unntak +
, -
, *, eller /
), else
filial evalueres.
I eksemplet ovenfor brukte vi when
som et uttrykk. Det er imidlertid ikke obligatorisk å bruke when
som 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 when
er ikke et uttrykk (returverdien fra when
er ikke tildelt noe). I dette tilfellet er else
grenen 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.