两个逻辑近似的JS罗马数字转整数函数为何输出结果不同
异常原因分析
两段代码的罗马数字转整数逻辑完全一致,唯一的错误点是romanToInt函数的返回语句位置错误:
- 运行异常的
romanToInt把return total写在了for循环内部,函数执行时只会完成第一轮循环就直接返回结果,不会继续遍历后续的罗马字符。比如测试用例III只会累加第一个I的值1就返回,无法得到正确结果3。 - 运行正常的
romanToInt2把return total放在了for循环结束之后,会完整遍历所有罗马字符完成计算后才返回最终结果,逻辑符合预期。
内容的提问来源于stack exchange,提问作者klondike
相关产品推荐
相关产品推荐

