【发布时间】:2019-03-18 21:23:49
【问题描述】:
在纸牌游戏桥牌中,给四张牌点值:Jack: 1, Queen: 2, King: 3, Ace: 4. 给定一个对应于手牌的字符串数组(纸牌表示如下: ["2","3","4","5","6","7","8","9","10","J","Q","K", "A"]),返回该手牌的高牌点总数。
我可以用while 循环解决这个简单的问题,但我想学习如何使用.each 来遍历数组,这是我的代码不起作用
def high_card_points(hand)
sum = 0
hand.each do |i|
if hand[i] == "J"
sum += 1
elsif hand[i] == "Q"
sum += 2
elsif hand[i] == "K"
sum += 3
elsif hand[i] == "A"
sum += 4
end
end
sum
end
现在,当我运行它时,会出现错误no implicit conversion of String into Integer。我应该如何以正确的方式做到这一点?
【问题讨论】:
-
它们不是“价值”,它们首先被称为“Milton Work Points”:)
-
提示:
T通常用于 10,所以它们都是单个字符。 -
#each方法调用后还有一个下划线,可能是错字但值得一提
标签: ruby loops iteration block