我应该使用什么代替whats_there参数,以使x的值为0?
val x =
if (true) {
for (i in 1..5)
if (i == 4)
return@whats_there 0
1
}
else 2
答案 0 :(得分:2)
val x = if (ok) run {
for (i in 1..5) {
if (i == someValue)
return@run 10
}
5
} else 2
或
val x = if (ok) {
if (someValue in 1..5) 10 else 5
} else 2
答案 1 :(得分:1)
使用类似这样的return
很难阅读并且容易出错。该示例可能过于简化而无法显示您的实际问题,但看起来您可以使用any()
,例如:
val x =
if (true) {
if ((1..5).any{ it == 4 })
0
else
1
} else
2
这可能比循环更好地表达了您的意图。
您可能会发现重新排序案件更加清晰,因此可以使用when
:
val x = when {
!true -> 2
(1..5).any{ it == 4 } -> 0
else -> 1
}
答案 2 :(得分:0)
为了解决我的问题,我使用了@ IR42作为第一个解决方案,但我不得不以不同的方式使用它:
val x = run {
if (ok){
for (i in 1..5)
if (i == someValue)
return@run 10
5
}
else 2
}