使用while循环来保持循环,直到满足条件为止。
时引脚正确:不显示消息,退出程序。
当用户输入错误引脚时:显示正确的错误消息Pin是不正确的,一直在提示用户输入并不断显示Pin是不正确的。
当用户输入非整数数据类型时:显示正确的错误消息-- Pin是不正确的,不断提示用户输入并不断显示Pin是不正确的。
这是我的密码
fun main() {
println("Create PIN: ")
val pin = readln().toIntOrNull()
println("Enter PIN: ")
val input = readln().toIntOrNull()
while (input != pin) {
if (input == pin) {
println("PIN is correct")
}
else{
println("Pin is incorrect")
readln().toIntOrNull()
}
}
}
编辑:我需要离开,就像把头撞在键盘上,哈哈。最后让它起作用了。
这是修复方法
fun main() {
println("Create PIN: ")
val pin = readln().toIntOrNull()
println("Enter PIN: ")
var input = readln().toIntOrNull()
while (input != pin)
{
println("PIN is incorrect")
input = readln().toIntOrNull()
}
if (input == pin){
println("PIN is correct")
}
}
发布于 2022-10-05 13:34:37
我知道你已经解决了这个问题,但我只想分享一下在这种情况下你可以使用的另一种设计模式。while(true)
循环一直在运行,直到调用它内部的break
为止。在像您在这里所做的事情中,它可以减少代码的重复。
请注意,您只需要使用readln().toIntOrNull()
一次而不是两次,input
变量就没有必要了:
fun main() {
println("Create PIN: ")
val pin = readln().toIntOrNull()
println("Enter PIN: ")
while (true) {
if (readln().toIntOrNull() == pin) {
println("PIN is correct")
break
}
println("PIN is incorrect")
}
}
发布于 2022-10-05 12:02:49
你忘了抓新打的别针了。由于您正在更改变量的值,所以需要使用var
而不是val
var input = readln().toIntOrNull()
而不是
else{
println("Pin is incorrect")
readln().toIntOrNull()
}
使用
else{
println("Pin is incorrect")
input = readln().toIntOrNull()
}
https://stackoverflow.com/questions/73959532
复制相似问题