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

如何为Ruby中的每个数组及数组元素赋予货币价值?

给每个电脑/显示器单独设置成本的Ruby实现

你可以用**哈希(Hash)**来给每个产品绑定名称和成本,这对初学者来说很好理解,比单纯的数组更适合存储带属性的内容。下面是修改后的代码,帮你实现每个电脑、显示器单独赋值成本,同时计算真实总价:

def computer_order
  puts "今天需要多少台带显示器的电脑?"
  gets.chomp.to_i
end

def monitor_and_computer
  # 用哈希数组存储每个电脑的名称和成本
  computer_types = [
    { name: "Dell Inspiron", cost: 550 },
    { name: "HP Pro", cost: 620 },
    { name: "Acer Vero", cost: 480 },
    { name: "Lenovo Ideacentre", cost: 580 },
    { name: "Dell Optiplex", cost: 650 },
    { name: "HP Envy", cost: 700 }
  ]
  
  # 同理存储显示器的名称和成本
  monitor_types = [
    { name: "Dell 27' Curved", cost: 180 },
    { name: "Viewsonic 22' Flat", cost: 120 },
    { name: "LG 24' Flat", cost: 150 },
    { name: "Samsung 27' Curved", cost: 200 },
    { name: "Spectre 27' Flat", cost: 220 },
    { name: "MSI 31.5' Curved", cost: 250 }
  ]
  
  free_items = ["250G U盘", "品牌T恤", "25美元Steam礼品卡"]
  
  number_of_computers = computer_order
  total_cost = 0

  number_of_computers.times do
    # 随机选一台电脑和显示器
    selected_computer = computer_types.sample
    selected_monitor = monitor_types.sample
    selected_free_item = free_items.sample
    
    # 计算当前这套的价格
    set_cost = selected_computer[:cost] + selected_monitor[:cost]
    total_cost += set_cost
    
    # 输出当前套餐详情
    puts "套餐:#{selected_computer[:name]} + #{selected_monitor[:name]},赠品:#{selected_free_item},单价:$#{set_cost}"
  end

  puts "总费用:$#{total_cost}"
end

monitor_and_computer

关键改动说明

  • 把原来的字符串数组改成哈希数组,每个哈希包含name(产品名称)和cost(成本)两个键,实现每个元素单独赋值成本。
  • 总价不再是固定单价乘数量,而是每次选完电脑和显示器后,把对应成本累加到总费用里,计算更准确。
  • 输出时增加每套的具体价格,让用户能清晰看到每台电脑+显示器的花费。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 12:15:34