如何在Ruby编程语言中实现if语句

265 阅读3分钟

决策是编程和人类生活中的一个基本因素。它们允许我们在一个条件符合特定范围时执行某些行动。

在本教程中,我们将重点讨论如何在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条件。