学习Ruby中的For循环

339 阅读5分钟

循环是任何编程语言中的一个基本概念。它们允许我们连续执行一个特定的动作,只要一个指定的条件为真。

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还有其他的循环方法,允许你对其他结构进行操作。