-6ren">
gpt4 book ai didi

ruby - 如何使用 elsif 和范围?

转载 作者:太空宇宙 更新时间:2023-11-03 17:33:53 25 4
gpt4 key购买 nike

我有以下代码:

var_comparison = 5
print "Please enter a number: "
my_num = Integer(gets.chomp)
if my_num > var_comparison
print "You picked a number greater than 5!"
elsif my_num < var_comparison
print "You picked a number less than 5!"
elsif my_num > 99
print "Your number is too large, man."
else
print "You picked the number 5!"
end

解释器无法区分接受规则 >5 还是 >99。我如何做到这一点,以便 6-99 之间的任何数字返回“你选择了一个大于 5 的数字!”,但 100 或更大的数字返回“你的数字太大了,伙计!”?

我是否需要以某种方式特别说明范围?我最好怎么做?是否会通过正常的范围方法,例如

if my_num 6..99

if my_num.between(6..99)

?

最佳答案

您可以将其表示为一个范围,但重新排列条件的顺序以实现您想要的结果会简单得多。解释器按照编写的顺序运行条件 if/else 语句,当条件为真或达到 else 时停止。这使得顺序很重要。我们可以知道,如果我到达一个 elsif,则前面的所有条件都必须为假。所以在你的代码中:

var_comparison = 5
print "Please enter a number: "
my_num = Integer(gets.chomp)
if my_num > 99
# my_num is > 99
print "Your number is too large, man."
elsif my_num > var_comparison # to get here, my_num must be <= 99
print "You picked a number greater than 5!"
elsif my_num < var_comparison
print "You picked a number less than 5!"
else
print "You picked the number 5!"
end

如果您需要将数字表示为一个范围(如果您的条件逻辑变得更复杂),您可以执行以下操作:

if (6..99).cover?(my_num)

关于ruby - 如何使用 elsif 和范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23893253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com