如何告诉用户他们已经离开了多少年

时间:2016-05-06 04:04:35

标签: ruby algorithm

大家好,我对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!"

先谢谢

4 个答案:

答案 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