ruby - 如何告诉用户他们还剩多少年才 21 岁

标签 ruby algorithm

我想做的是告诉你他们还有多少年才到 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!"

最佳答案

你在开始时设置了这个:

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 的新手。只是要清楚:

#{years_to_wait} 在双引号字符串 ("vs ') 中作为变量的值打印出来。如果变量为 1,则响应将是单数 "year",如果大于 1,它将是复数“年”。我使用了 if/then/else 的非常紧凑的版本来使其干净(称为三元运算符)。

第一部分是比较,然后是?对于隐含的“如果”

years_to_wait > 1?

后跟返回值,如果为真,则为字符“s”,然后为“:”,如果为假,返回值为无字符“”。当插值发生时,这让我们得到了单词“year(s)”的正确版本。

关于ruby - 如何告诉用户他们还剩多少年才 21 岁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37064040/

相关文章:

ruby - Ruby 中的 bool 参数错误

ruby - 使用 ruby​​-install/ruby-build 在 Archlinux 上安装 Ruby 2.1.x 和 2.3.x 时出现 OpenSSL 错误

ruby - Ruby 1.9 中的绿色线程?

database - 根据距离和受欢迎程度对地点进行排名

c# - 改进 O(n^2) 算法

java - 寻找最大公共(public)子序列

ruby-on-rails - 嵌套模块和方法 Hook

ruby - 我可以使用哪个 HTTP Web 服务器来调试使用 Rubymine 3.0.1 的 ruby​​ 代码?

c - 按最大次数顺序生成多项式

sql - 基于分手的日期拆分