大家好,我对ruby很新。到目前为止,我很喜欢它。
我想要做的就是告诉你他们已经离开了多少年,直到21岁。我一直试图想但没有。
这是我的代码:
#!/usr/bin/env ruby
under_age = 21
print "What is your first name? "
first_name = gets.chomp
print "What is your last name? "
last_name = gets.chomp
print "What is your age? "
user_age = Integer(gets.chomp)
if user_age < legal_age
print "You may not continue"
else if > 21
print "Welcome!"
先谢谢
答案 0 :(得分:4)
您可以在开头设置:
under_age = 21
但是你不使用它,你使用legal_age
我想如果你把第一行更改为
legal_age = 21
然后删除最后一个小于:
if user_age < legal_age
years_to_wait = 21 - user_age
print "You may not continue, come back in #{years_to_wait} year#{years_to_wait > 1? 's' : ''} "
else
print "Welcome!"
end
我在那里添加了一些你可能没有涵盖对Ruby的新手。只是要明确:
双引号字符串(“vs”)中的 #{years_to_wait}
打印出变量的值。如果变量为1,则响应将是单数“年”,如果大于1则将是复数“年”。我使用非常紧凑的if / then / else版本来使其干净(称为Ternary运算符)。
第一部分是比较后跟?隐含的“if”
years_to_wait > 1?
后跟返回值,如果为true,则为字符's',然后为“:”,返回值为false,无字符''。当插值发生时,这会让我们得到“year(s)”这个词的正确版本。
答案 1 :(得分:1)
您的变量名称遍布各处。但我想你只想要
legal_age - user_age
也是你的最后一个如果是无情的
答案 2 :(得分:0)
你错过了它应该在ruby中的elsif语句中的变量:
if user_age < 21
print "You may not continue"
elsif user_age > 21
print "Welcome!"
end
legal_age变量也没有分配,也许你的意思是under_age变量。
答案 3 :(得分:0)
您的if..else
语法不正确。 more info
if user_age < under_age
print "You may not continue, come back after #{under_age - user_age} years"
else
print "Welcome!"
end
注意: legal_age
也未分配,您可以将其替换为under_age
或将under_age
更改为legal_age