检查用户是否使用if-else语句Kotlin输入了数据类型int



编辑:答案如下

对于kotlin来说真的很新鲜,想要检查用户是否使用if-else语句输入了Integer。稍后需要添加一个do while循环。

预期错误消息:不正确

当我将鼠标悬停在(input!=pin(上时,它会显示条件'输入!=pin总是正确的。

这是我的代码

fun main() {
println("Create PIN: ")
val pin = readln().toInt()
println("Enter PIN: ")
val input = readln().toInt()
if (input == pin){
println ("Correct")
}
else if (input != pin) {
println("Incorrect")
}
}

因为如果input == pin是false,那么input != pin总是true,这就是为什么你不需要第二个,如果你可以用if:替换它的话

fun main() {
println("Create PIN: ")
val pin = readln().toInt()
println("Enter PIN: ")
val input = readln().toInt()
if (input == pin){
println ("Correct")
}
else {
println("Incorrect")
}
}

但现在,如果用户输入了无法转换为int的内容(一些字符,例如"hello"…(。toInt((将抛出一个NumberFormatException,而您的代码将不起作用,因此为了解决这个问题并处理用户输入Int以外的内容时的情况,您可以使用.toIntOrNull()而不是.toInt()

.toIntOrNull():将字符串解析为Int数字,如果字符串不是数字的有效表示形式,则返回结果或null。

因此,如果pin或input为null,则意味着用户输入了无法转换为Int.的内容

fun main() {
println("Create PIN: ")
val pin = readln().toIntOrNull()
println("Enter PIN: ")
val input = readln().toIntOrNull()
if (input == null || pin == null) {
println("PIN is not valid")
}
else if (input == pin){
println ("Correct")
}
else {
println("Incorrect")
}
}

最新更新