You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kotlin中使用while循环结合用户输入直至满足条件

PIN验证程序问题与修正

需求描述

使用while循环持续执行直至满足条件:

  • 当PIN正确时:无提示信息,程序退出。
  • 当用户输入错误PIN时:显示错误提示「Pin is incorrect」,持续提示用户输入并重复显示该错误信息。
  • 当用户输入非整数类型时:显示错误提示「Pin is incorrect」,持续提示用户输入并重复显示该错误信息。

初始代码

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()
        }
    }
}

修正代码

初始代码存在两处关键问题:一是input被声明为不可变的val,循环内读取的新输入无法更新变量值,导致循环条件始终不变;二是循环内部的if (input == pin)判断完全冗余,因为循环本身的条件就是input != pin,同时原修正代码中多余的正确提示也不符合需求要求。

以下是符合需求的修正代码:

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()
    }
}

内容的提问来源于stack exchange,提问作者Gilli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 10:20:43