循环是任何编程语言中的一个基本概念。它们允许我们连续执行一个特定的动作,只要一个指定的条件为真。
Ruby也提供了循环的概念,可以执行类似的动作。然而,每个循环方法都采取了不同的方法,而且循环的目的决定了它的效率。
本快速指南将引导你了解Ruby最常见的循环类型,包括while循环、for循环和do while循环。
while 循环
让我们从while循环开始,因为它将为实现其他循环方法奠定逻辑基础。
Ruby的while循环帮助测试一个条件,并在该条件为真时执行一个动作。指定的条件在循环的开始被测试,并且应该返回布尔值true或布尔值false。
当条件为真时,while循环内的块被连续执行,一旦条件为假,则终止执行。
while 循环最常见的用途是当程序迭代的次数不确定时。例如,一个连续询问用户密码的循环可以运行一次或无限次。
在Ruby中实现while循环的一般语法是。
while [condition] do
# executeme
end
我们首先调用while关键字,打开循环块。
接下来,我们指定循环检查的条件,然后是do关键字。
在这个块中,我们添加所有我们希望执行的目标代码。
最后,我们使用end关键字来关闭循环。
Ruby While 循环实例
让我们实现一个简单的例子来说明我们如何使用while循环。在这种情况下,一个简单的倒计时就足够了。
x = 60
while x > 0
x -= 1
puts "#{x} seconds remaining"
end
在上面的例子中,我们创建了一个变量x并将其值设置为60。
然后我们实现一个循环,检查x的值是否大于0,如果为真,就放一条显示剩余秒数的信息。
为了避免循环永远运行下去,我们实现了一个减法,循环每运行一次就减去1。
For 循环
下一个流行和有用的循环方法是for循环。在某些方面,它与while循环相似,但它实现的循环功能不同。
For 循环最常见的用途是当循环需要运行一个预先确定的迭代数时。
例如,如果尝试密码的总次数少于5次,就继续询问密码;否则,就封锁该账户。
我们还在循环的开头实现了for循环的条件。
Ruby中for循环的语法是:
forvarin [expression] do
# execute me
end
在上面的for-loop语法中,我们首先调用for关键字,表示for-loop块的开始。
接下来,我们设置变量,作为条件的参考。可以把它看作是密码试验比喻中的当前试验。
然后我们使用in关键字,这是一个Ruby预定义的关键字,通常在for循环中使用。
下一个部分是表达式;这是对变量进行评估的范围。这可以是一个单一的数值范围,也可以是一个数组来进行迭代。
下一部分是do关键字,用于打开for-loop块,在条件为真时添加要执行的代码。
最后,我们用一个结束块关闭for循环。
Ruby for 循环示例
下面的例子说明了如何在Ruby中使用for循环。
foriin1..10 do
puts i
end
在上面的例子中,我们定义了变量i,它只是一个占位符,代表1到10范围内的每一项。
Ruby有两个范围操作符:两个点(...)和三个点(...)。
两个点的符号被称为包容性的范围操作符。这意味着它将包括范围内的最大值。可以把它想象成小于或等于。
三点符号--也被称为排他性运算符,不包括运算符中的最大值。类似于小于。
如果我们运行上面的代码,它应该打印从1开始的值,并包括10,因为我们使用了包容范围。

要从数值范围中排除10,使用三点符号,如。
foriin1..10 do
puts i
end
使用for循环的另一个例子是获取一个数组中的项目。例如,假设我们有以下数组。
frameworks = ["Ruby on Rails", "Angular", "VueJs", "Express", "Django", "React", "Laravel"]
默认情况下,如果我们想访问数组中的一个项目,我们可以使用索引作为。
puts frameworks[0]
如果我们想访问数组中的所有项目,我们就必须实现多个重复的行。
puts frameworks[0]
puts frameworks[1]
puts frameworks[2]
puts frameworks[n]
当我们不知道数组中的项目总数时,这样做的效率非常低,而且毫无意义。
为了解决这个问题,我们可以实现一个简单的for循环。
frameworks = ["Ruby on Rails", "Angular", "VueJs", "Express", "Django", "React", "Laravel"]
for framework in frameworks do
puts framework
end
上述项目可以解释为:对于项目中的每一个项目,打印,该项目。

Do While 循环
另一个循环方法是do while循环。它与while循环非常相似,但在执行代码块后检查条件。因此,即使条件从未评估为真,该循环也会至少执行一次。
在Ruby中,do while循环的语法是。
loop do
# run me once
break if [condition]
end
Ruby Do While 循环实例
下面的简单例子显示了如何在Ruby中使用Do while循环。
loop do
puts "Hi there!"
i = 10
if i == 10
break
end
end
该循环将运行一次并退出。
总结
在本教程中,我们讨论了在Ruby中使用循环编程的基础知识。Ruby还有其他的循环方法,允许你对其他结构进行操作。