Kotlin新手求助:用if else判断输入是否为整数及代码警告问题
Kotlin代码优化方案
解决"Condition 'input != pin' is always true"提示
你写的else if (input != pin)完全没必要——第一个if已经判断了input == pin,不满足的情况必然是input != pin,直接换成else就行,编译器的提示就会消失:
if (input == pin) { println("Correct") } else { println("Incorrect") }
实现输入整数校验
直接调用toInt()如果用户输入非整数会崩溃,改用toIntOrNull():这个方法会在输入无法转为整数时返回null,刚好用来判断输入是否合法。
添加do-while循环实现重复输入
用do-while循环让用户可以反复输入,直到输入正确的PIN,同时处理非法输入的情况。
完整可运行代码
fun main() { // 先确保用户输入合法的整数PIN var pin: Int? do { println("Create PIN: ") pin = readln().toIntOrNull() pin ?: println("请输入有效的整数PIN") } while (pin == null) // 循环验证PIN,直到输入正确 var input: Int? do { println("Enter PIN: ") input = readln().toIntOrNull() when { input == null -> println("请输入有效的整数") input == pin -> println("Correct") else -> println("Incorrect") } } while (input != pin) }
代码说明
- 创建PIN阶段:循环直到用户输入合法整数,避免后续逻辑出错
- 验证PIN阶段:同时处理非法输入和PIN错误的情况,只有输入正确才退出循环
- 用
when表达式替代多层if-else,代码更简洁易读
内容的提问来源于stack exchange,提问作者Gilli
相关产品推荐
相关产品推荐

