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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 09:40:24