Ruby 循环 - while、for、until、break、redo 和 retry

JSON 2024-05-10 16:17:52 289

Ruby循环

例如,您想打印一个字符串十次。您可以键入十个打印语句,但使用循环更容易。您唯一需要做的就是设置一个循环来执行同一代码块指定的次数。这里我们讨论了 Ruby 支持的循环语句。

Ruby while 语句:

while语句很简单,只要条件成立就会重复执行代码。 while 循环的条件通过保留字“do”、换行符、反斜杠 \ 或分号与代码分隔。

句法:

while conditional [do]
   code
end

例子:

以下代码打印数字 0 到 10。在进入循环之前检查条件 a < 10,然后执行主体,然后再次检查条件。当条件结果为 false 时,循环终止。

x =  1
y =  11
while x <  y  do
  print  x ,". Ruby while loop.\n"
  x +=1 
  end

输出:

1. Ruby while loop.
2. Ruby while loop.
3. Ruby while loop.
4. Ruby while loop.
5. Ruby while loop.
6. Ruby while loop.
7. Ruby while loop.
8. Ruby while loop.
9. Ruby while loop.
10. Ruby while loop.

在 while 语句中,“do”关键字是可选的。下面的循环与上面的循环等效:

x =  1
y =  11
while x <  y
  print  x ,". Ruby while loop.\n"
  x +=1 
  end

Ruby while 修饰符:

与 if 和 except 一样,while 也可以用作修饰符。

x = 0

x += 1 while x < 10
p  x     # prints 10

您可以使用 begin 和 end 创建一个 while 循环,在条件之前运行一次循环体:

x = 0
begin
  x += 1
end while x <10
p  x  # prints 10

Ruby 直到声明:

当条件为假时,until 循环就会执行。直到循环的条件通过保留字“do”、换行符、反斜杠\或分号与代码分隔。与 while 循环一样,do 是可选的。

句法:

until conditional [do]
   code
end

例子:

以下脚本打印数字 1 到 10。与 while 循环一样,进入循环时以及每次执行循环体时都会检查条件 x > 11。如果条件为假,则循环将继续执行。

x =  1
y =  11
until x > y  do
  print  x ,". Ruby while loop.\n"
  x +=1 
  end

输出:

1. Ruby while loop.
2. Ruby while loop.
3. Ruby while loop.
4. Ruby while loop.
5. Ruby while loop.
6. Ruby while loop.
7. Ruby while loop.
8. Ruby while loop.
9. Ruby while loop.
10. Ruby while loop.

Ruby 直到修饰符:

就像 if 和 except 一样,until 也可以用作修饰符。

句法:

code until conditional

OR

begin
   code
end until conditional

例子:

x = 0
x += 1 until x > 10
p x   # prints 11

这将产生以下结果:

您可以使用begin和end创建一个until循环,该循环在条件之前运行一次主体:

x = 0
begin
x += 1
end until x <10
p  x  # prints 1

Ruby 声明:

与大多数其他语言一样,Python 也有 for 循环,for 循环由 for 后跟一个变量组成,该变量包含迭代参数,后跟 in 以及要使用每个迭代的值。

与 while 和 Until 一样,do 是可选的。

for 循环与使用each 类似,但不会创建新的变量范围。

for 循环的结果值是迭代的值,除非使用了break。

现代 Ruby 程序中很少使用 for 循环。

句法:

for variable [, variable ...] in expression [do]
   code
end

例子:

for x in [1, 2, 3, 4] do
  puts x
end

for x in 0..4
  puts "Value of x is :  #{x}"
end

输出:

1
2
3
4
Value of x is :  0
Value of x is :  1
Value of x is :  2
Value of x is :  3
Value of x is :  4

Ruby 中断语句:

Break 语句用于提前终止块。您还可以使用 Break 从 while、for 循环中终止。

句法 :

break Statement

例子:

以下示例打破 while 循环:

x  = 0
while true do
  puts  x
  x += 1
  break if  x > 5
end

输出:

0 
1 
2 
3 
4 
5

例子:

以下示例打破了 for 循环:

例子:

以下示例打破 while 循环:

for  x  in 0..5
         if  x > 2 then
            break
         end
         puts  "Value of  x is  #{x}"
end

输出:

Value of  x is  0
Value of  x is  1
Value of  x is  2

Ruby 下一个声明:

下一个语句用于跳过当前迭代的其余部分。如果在块内调用,则终止块的执行。

句法:

next Statement

例子:

for x  in  0..6
         if  x < 3 then
            next
         end
         puts "Value of x is : #{x}"
      end

输出:

Value of x is : 3
Value of x is : 4
Value of x is : 5
Value of x is : 6

Ruby 重做语句:

redo 语句用于重做当前迭代:

句法:

redo Statement

例子:

restart = false
for x in 1..15
    if x == 10
        if restart == false
            puts "Re-doing when x = " + x.to_s
            restart = true
            redo
        end
    end
    puts x
end

输出:

1
2
3
4
5
6
7
8
9
Re-doing when x = 10
10
11
12
13
14
15

Ruby触发器

触发器用于处理与 ruby​​ -n 或 ruby​​ -p 一起使用的 ruby​​ 单行程序中的文本。触发器的形式是一个表达式,指示触发器何时开启,..(或…),然后是一个表达式,指示触发器何时关闭。当触发器打开时,它将继续评估为真,关闭时评估为假。触发器必须用在条件语句中,例如 if、while、unless、until 等。

例子:

在以下示例中,开启条件为 n==12。触发器最初在 10 和 11 时关闭(假),但在 12 时变为开启(真),并在 18 之前保持开启状态。在 18 之后,它关闭并在 19 和 20 期间保持关闭状态。

selected = []
10.upto 20 do |value|
 selected << value if value==12..value==18
end
p selected 

输出:

[12、13、14、15、16、17、18]

版权所属:SO JSON在线解析

原文地址:https://www.sojson.com/blog/531.html

转载时必须以链接形式注明原始出处及本声明。

本文主题:

如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。

关于作者
一个低调而闷骚的男人。
相关文章
C语言while循环do while循环
C语言while循环do while循环
for循环的 i++ ++i 的区别
ip子网掩码怎么运算
md5base64的区别
对Log4j 日志工具类的封装,java LoggerUtils查看下载
JSON是什么?它能带来什么?它XML比较?
个推异常值检测实战应用-又拍云
老黄历有红色绿色是什么意思?它们有的寓意?
DES算法的基本原理主要步骤是什么?
最新文章
Linux I/O重定向 331
Ruby 循环 - while、for、until、break、redo 和 retry 289
Node.js:全局对象 243
如何使用终端检查Linux上的内存使用情况 253
JavaScript对象详细剖析 133
Python print() 函数 220
PHP if/else/elseif 语句 193
HTML5 Canvas弧线教程 184
Java赋值运算符 239
XML内部实体和外部实体 293
最热文章
最新MyEclipse8.5注册码,有效期到2020年 (已经更新) 684487
苹果电脑Mac怎么恢复出厂系统?苹果系统怎么重装系统? 674918
免费天气API,全国天气 JSON API接口,可以获取五天的天气预报 605805
免费天气API,天气JSON API,不限次数获取十五天的天气预报 594564
Jackson 时间格式化,时间注解 @JsonFormat 用法、时差问题说明 554321
我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比 509756
Elasticsearch教程(四) elasticsearch head 插件安装和使用 480503
Jackson 美化输出JSON,优雅的输出JSON数据,格式化输出JSON数据... ... 266629
Java 信任所有SSL证书,HTTPS请求抛错,忽略证书请求完美解决 244463
Elasticsearch教程(一),全程直播(小白级别) 226141
支付扫码

所有赞助/开支都讲公开明细,用于网站维护:赞助名单查看

查看我的收藏

正在加载... ...