Kotlin布尔值比较问题求助:手机使用时长对比输出不符
问题分析与解决
你的代码核心问题出在timeSpent函数内部——你重新声明了局部变量today和拼写错误的yeseterday,直接覆盖了调用时传入的参数值。不管你调用函数时传什么数值,函数都会固定比较300 > 250,这就是第三个测试用例(传入200和220)返回true而非期望false的原因。
修复后的代码
fun main() { var timeSpentToday = 300 var timeSpentYesterday = 250 println(timeSpent(timeSpentToday, timeSpentYesterday)) println() println(timeSpent(300, 300)) println() println(timeSpent(200, 220)) println() } fun timeSpent(today: Int, yesterday: Int): Boolean { // 移除内部的变量声明,直接使用传入的参数进行比较 return today > yesterday }
关键修复点
- 删除函数内的
val today = 300和val yeseterday = 250,让函数使用调用时传入的参数执行逻辑 - 原函数里的
yeseterday是拼写错误,修复后无需额外声明该变量,直接用参数yesterday即可
修复后运行代码,输出会完全符合你的预期:true、false、false。
内容的提问来源于stack exchange,提问作者Ace Nguyen
相关产品推荐
相关产品推荐

