决策是编程和人类生活中的一个基本因素。它们允许我们在一个条件符合特定范围时执行某些行动。
在本教程中,我们将重点讨论如何在Ruby编程语言中实现条件语句。使用Ruby条件语句,我们可以检查一个特定的条件并根据结果采取指定的行动。
在Ruby中做出单一决定的最简单方法是实现一个if语句。
红宝石If语句
if语句接收一个条件并评估它是真还是假。如果是真的,它将执行一个决定。
Ruby的if语句的一般语法是。
if condition
// do this
end
让我们用一个例子来表达如何实现上述语法。例如,假设我们只向18岁以上的人出售电影票,我们可以这样做。
age = 20
if age >= 18
print "Movie tickets are 10 bucks!"
end
在我们的例子中,代码返回语句。
"电影票是10美元。"我们首先定义了一个存储年龄的变量。接下来,我们实现一个if语句,检查年龄是否大于或等于18岁。如果为真,我们就出售电影票;如果不是,则什么也不做。
红宝石条件语句
在上面的例子中,你会注意到我们使用>=操作符来检查条件。Ruby为你提供了一些条件运算符来评估各种条件。这些运算符包括。
| 操作符 符号 | 功能 |
|---|---|
| > | 大于运算符检查左边的值或表达式是否大于右边的值或表达式。 |
| < | 小于运算符检查左边的值或表达式是否小于右边的值或表达式。 |
| == | 等值运算符检查值的集合是否相等 |
| >= | 大于或等于 |
| <= | 小于或等于 |
| != | 不等于,检查左边的值是否与右边的值不相等。 |
否定一个条件
在Ruby中,我们可以通过在条件前加上感叹号(!)来否定一个条件。这将逆转条件的结果。
比如说。
i = 10
if !(i < 3)
print "Hi, I am negated!"
end
我们首先将i的值定义为10。接下来,我们检查10是否小于3,评估结果为假。然而,由于(!)的存在,条件变成了真,导致了字符串的打印。
红宝石 If Else 语句
为了实现基于不同条件的多重逻辑,我们可以使用If Else语句。在这种情况下,如果条件不为真,就这样做。
让我们以上面的电影票为例。如果用户不是18岁及以上,而我们不做什么,这可能会使最终用户感到困惑。
让我们实现逻辑,告诉用户他们需要至少18岁。
age = 20
if age >= 18
print "Movie tickets are 10 bucks!"
else
print "You have to be at least 18 years of age!"
end
如果我们运行上面的代码,我们应该得到。
> ruby conditionals.rb
"Movie tickets are 10 bucks!"
接下来,让我们把年龄换成小于18岁。
age = 17
if age >= 18
print "Movie tickets are 10 bucks!"
else
print "You have to be at least 18 years of age!"
end
一旦我们运行该代码,我们应该得到这样的语句。
> ruby conditionals.rb
"You have to be at least 18 years of age!"
红宝石 If...Elsif...Else 语句
到此为止,我们只检查了两个语句。如果年龄大于或等于18岁,就卖出一张电影票,否则就拒绝。然而,如果我们想对不同的年龄段实施不同的定价呢?
在这种情况下,我们可以使用if...elsif...else语句。这方面的一般语法是。
if (condition)
# do
elsif condition2
# do
elsif condition3
# do
elsif conditionN
# do
else
#do
让我们在我们的电影票例子中实现上述逻辑。在这个例子中,我们将有四个年龄括号,如下面的代码所示。
输入 "输入你的年龄:"
age = gets
age = age.to_i
if age <= 17
puts "You are under age to purchase a ticket"
elsif age > 18 && age <= 24
puts "Tickets are 10 bucks!"
elsif age > 24 && age < 40
puts "Tickets are 15 bucks!"
else
puts "Tickets are 20 bucks!"
end
在上面的例子中,我们首先询问用户的年龄。接下来,我们将输入的信息转换为整数,对数值进行逻辑比较。
最后,我们创建年龄括号,评估年龄和他们的票价。
下面是一个输出的例子。
Enter your age:
20
Tickets are 10 bucks!
Enter your age:
5
You are under age to purchase a ticket
Enter your age:
50
Tickets are 20 bucks!
红宝石如果单行线
如果我们在Ruby中只需要检查一个条件,我们可以实现一个单行格式,如。
age = 18
puts "Tickets are 10 bucks" if age >= 18
我们可以把上面的内容表达为:"如果年龄大于或等于18,就打印下面的内容"。
结论
在本指南中,我们讨论了如何在Ruby中实现if条件。