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

Ruby新手求助:仅适配三位数字的Colorful Number方法运行失败原因

代码错误点如下:

  1. 条件判断逻辑错误
    代码里elsif number == 0 || 1的写法不符合Ruby语法规则,这个表达式实际会被解析为(number == 0) || 1,由于1是永真的布尔值,只要代码走到这个分支,无论输入数字是多少都会直接返回true,正确写法应为elsif number == 0 || number == 1。

  2. 数组下标越界引发的空值错误
    你没有判断输入数字的位数就直接固定取digits_arr[1]、digits_arr[2]的元素,如果输入的是1位或者2位数字,对应下标的元素不存在会返回nil,执行乘积计算的时候就会报undefined method '*' for nil:NilClass的错误。
    比如输入数字是5,digits_arr = [5],访问digits_arr[1]得到的就是nil,无法参与乘法运算。

  3. 数组拼接语法错误
    代码中final_array = digits_arr + product_1 + product_2 + product_3的写法错误,Ruby中数组不能直接和整数做加法运算,会报no implicit conversion of Integer into Array的错误,需要把乘积值包裹成数组再拼接,比如正确写法为final_array = digits_arr + [product_1, product_2, product_3],但该写法仍然需要先解决位数判断的问题,否则拼接的数组里会出现nil值影响判断结果。


内容的提问来源于stack exchange,提问作者Flantermann

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 13:18:03