如何在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
相关产品推荐
相关产品推荐

