首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用while循环来保持循环直到满足用户输入kotlin的条件

如何使用while循环来保持循环直到满足用户输入kotlin的条件
EN

Stack Overflow用户
提问于 2022-10-05 11:10:08
回答 2查看 98关注 0票数 0

使用while循环来保持循环,直到满足条件为止。

时引脚正确:不显示消息,退出程序。

当用户输入错误引脚时:显示正确的错误消息Pin是不正确的,一直在提示用户输入并不断显示Pin是不正确的

当用户输入非整数数据类型时:显示正确的错误消息-- Pin是不正确的,不断提示用户输入并不断显示Pin是不正确的

这是我的密码

代码语言:javascript
运行
复制
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()
        }
    }
}

编辑:我需要离开,就像把头撞在键盘上,哈哈。最后让它起作用了。

这是修复方法

代码语言:javascript
运行
复制
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")
}

}

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-10-05 13:34:37

我知道你已经解决了这个问题,但我只想分享一下在这种情况下你可以使用的另一种设计模式。while(true)循环一直在运行,直到调用它内部的break为止。在像您在这里所做的事情中,它可以减少代码的重复。

请注意,您只需要使用readln().toIntOrNull()一次而不是两次,input变量就没有必要了:

代码语言:javascript
运行
复制
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")
    }
}
票数 1
EN

Stack Overflow用户

发布于 2022-10-05 12:02:49

你忘了抓新打的别针了。由于您正在更改变量的值,所以需要使用var而不是val

代码语言:javascript
运行
复制
var input = readln().toIntOrNull()

而不是

代码语言:javascript
运行
复制
    else{
        println("Pin is incorrect")
        readln().toIntOrNull()
    }

使用

代码语言:javascript
运行
复制
else{
        println("Pin is incorrect")
        input = readln().toIntOrNull()
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73959532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档