基本的ruby if语句出现问题



我正在尝试设置此代码以检查数组中是否存在特定名称。在这种情况下,我想看看弗雷德是否在名单上,如果没有,就把";名字不在名单上"在下面

friends = Array["Kevin", "Karen", "Oscar"]
if (puts friends.include? "Fred" == false)
puts ("Name wasn't on the list")
end

我是ruby的新手,所以我不确定这是否是正确的方法。如有任何帮助,我们将不胜感激。

friends = Array["Kevin", "Karen", "Oscar"]

这并没有错,只是有些过头了。friends = ["Kevin", "Karen", "Oscar"]是好的。

if (puts friends.include? "Fred" == false)
puts ("Name wasnt on the list")
end

if (puts friends.include? "Fred" == false)行看起来很无辜,但包含了数量惊人的错误,最重要的是puts总是返回nil。此版本有效:

unless friends.include? "Fred" 
puts "Name wasnt on the list"
end

您也可以使用puts "Name wasn't on the list" unless friends.include? (name),这里有一个简单的方法:

def name_on_list(friends, name)
puts "Name wasn't on the list" unless friends.include?(name)
end
friends = ["Kevin", "Karen", "Oscar"]
name_on_list(friends, "Fred")

您可以删除";数组";来自数组声明。

函数将朋友和名称作为参数。

在函数中,当不包括名称时,我使用单行打印文本。我倾向于使用括号来传递参数,但它们是可选的。

最新更新