Kotlin交通灯颜色if条件判断代码运行异常求解
Kotlin 交通信号灯条件逻辑修复方案
题目要求
- 定义
String类型变量currentLightColor,初始值从"Green"、"Yellow"、"Red"三者中选择其一赋值 - 基于
if/else if/else实现分支判断,输出格式固定为"The light is X",X为当前信号灯变量的实际取值,分支需和颜色值一一匹配
原有代码问题
- 赋值语法错误:Kotlin中同一行的分号代表语句分隔,
var currentLightColor = "green"; "yellow"; "Red"的写法仅会将"green"赋值给变量,后面的"yellow"、"Red"是无意义的孤立字面量,不会给变量赋值 - 大小写匹配错误:题目要求变量值为首字母大写的格式,原代码判断条件用了全小写的
"green"、"yellow",会导致分支匹配逻辑失效 - 输出格式不统一:前两个分支的输出句首是小写的
the,不符合要求的固定输出格式,句首首字母需大写为The
正确实现代码
fun main() { // 可替换为"Yellow"或"Red"测试不同分支逻辑 val currentLightColor = "Green" if (currentLightColor == "Green") { println("The light is Green") } else if (currentLightColor == "Yellow") { println("The light is Yellow") } else { println("The light is Red") } }
小提示:如果变量在运行过程中不需要重新赋值,优先用
val声明不可变变量是Kotlin的推荐编码规范;如果后续需要动态修改信号灯颜色,再把val替换为var即可。
内容的提问来源于stack exchange,提问作者davidokoth
相关产品推荐
相关产品推荐

