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

Ruby数组插入数字功能退出异常、重复值校验失效问题求助

问题根因与修复代码

问题1触发原因

数字输入逻辑和选项读取逻辑放在同一个判断分支内,无论用户输入的option是1还是2,只要进入option == 1的分支,读取option后都会强制执行一次数字输入逻辑,所以选2退出时依然会要求输入数字并插入数组。

问题2触发原因

重复校验逻辑存在两处错误:

  • 校验条件写为number_user == numbers,是拿单个整数和数组整体做相等判断,永远返回false,正确写法应该用数组的include?方法判断元素是否存在
  • 条件分支的elsif后没有跟判断条件,语法逻辑不成立

修复后完整代码

numbers = []

loop do
  puts 'To enter a number type 1 - To exit type 2'
  option = gets.chomp.to_i
  # 先判断选项,再执行对应逻辑
  case option
  when 1
    print 'Type: '
    number_user = gets.chomp.to_i
    if numbers.include?(number_user)
      puts 'This number has already been entered!'
    else
      numbers << number_user
    end
  when 2
    puts "Bye!"
    puts "Entered numbers - #{numbers}"
    break
  else
    puts "Invalid option"
    break
  end
end

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 00:21:02