I am trying to have multiple statements for one condition. For example: this is a sample code for when statement.
when (x) { 1 -> print("x == 1") 2 -> print("x == 2") else -> { // Note the block print("x is neither 1 nor 2") } }
When x is 1, I also want to have an extra statement like x += 10, how can I do it?
Nested when structures are difficult to understand because you can easily confuse the cases of an inner when as belonging to an outer statement. Therefore nested when statements should be avoided.
From the Kotlin Coding Conventions: Prefer using if for binary conditions. Prefer using when if there are three or more options. Save this answer.
Using when Without an Argument The last interesting feature of when is that it can be used without an argument. In such case it acts as a nicer if-else chain: the conditions are Boolean expressions.
You have the solution in your question with the "Note the block" comment. Branches of when
can be blocks that can contain any number of statements:
when(x) { 1 -> { println("x == 1") x += 10 println("x == 11") } 2 -> { ... } else -> { ... } }
Writing a single statement branch just has a simplified syntax so that you don't need to surround it with {}
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With