"when" 语句中的不等式输出错误
Inequality within "when" statement outputs error
这里我有一个程序,它根据不同的条件为变量赋值:
fun main(args: Array<String>) {
var age = readLine()!!.toInt()
var string_age = when(age) {
in 0..11 -> "Child"
in 12..17 -> "Teen"
in 18..64 -> "Adult"
age > 64 -> "Senior"
else -> "Invalid age"
}
print(string_age)
}
但是,不等式“年龄 > 64”returns“不兼容的类型:Boolean 和 Int”。我必须做什么才能在“when”语句中使用不等式。
不幸的是,您不能在 when
的情况下明确使用 when
的参数。
所以你可以这样调整你的代码:
var string_age = when(age) {
in 0..11 -> "Child"
in 12..17 -> "Teen"
in 18..64 -> "Adult"
else -> {
if (age > 64) {
"Senior"
} else {
"Invalid age"
}
}
}
或者像这样,将 age
移出 when
并在所有情况下显式使用它
var string_age = when {
age in 0..11 -> "Child"
age in 12..17 -> "Teen"
age in 18..64 -> "Adult"
age > 64 -> "Senior";
else -> "Invalid age"
}
或者你可以使用范围
下面的技巧
in 65..200 -> "Senior"
而不是 age > 64 -> "Senior"
。
200 年足够一个人的寿命;)
这里我有一个程序,它根据不同的条件为变量赋值:
fun main(args: Array<String>) {
var age = readLine()!!.toInt()
var string_age = when(age) {
in 0..11 -> "Child"
in 12..17 -> "Teen"
in 18..64 -> "Adult"
age > 64 -> "Senior"
else -> "Invalid age"
}
print(string_age)
}
但是,不等式“年龄 > 64”returns“不兼容的类型:Boolean 和 Int”。我必须做什么才能在“when”语句中使用不等式。
不幸的是,您不能在 when
的情况下明确使用 when
的参数。
所以你可以这样调整你的代码:
var string_age = when(age) {
in 0..11 -> "Child"
in 12..17 -> "Teen"
in 18..64 -> "Adult"
else -> {
if (age > 64) {
"Senior"
} else {
"Invalid age"
}
}
}
或者像这样,将 age
移出 when
并在所有情况下显式使用它
var string_age = when {
age in 0..11 -> "Child"
age in 12..17 -> "Teen"
age in 18..64 -> "Adult"
age > 64 -> "Senior";
else -> "Invalid age"
}
或者你可以使用范围
下面的技巧in 65..200 -> "Senior"
而不是 age > 64 -> "Senior"
。
200 年足够一个人的寿命;)