html菜鸟ruby,Ruby 循环

Ruby 循环

Ruby 中的循环用于执行相同的代码块若干次。本章节将详细介绍 Ruby 支持的所有循环语句。

Ruby while 语句

语法

whileconditional[do]codeend

或者

语法

whileconditional[:]codeend

当 conditional 为真时,执行 code。

语法中 do 或 : 可以省略不写。但若要在一行内写出 while 式,则必须以 do 或 : 隔开条件式或程式区块。

实例

#!/usr/bin/ruby#-*- coding: UTF-8 -*-$i=0$num=5while$i

尝试一下 »

以上实例输出结果为:

在循环语句中 i = 0

在循环语句中 i = 1

在循环语句中 i = 2

在循环语句中 i = 3

在循环语句中 i = 4

Ruby while 修饰符

语法

codewhilecondition或者begincodeendwhileconditional

当 conditional 为真时,执行 code。

如果 while 修饰符跟在一个没有 rescue 或 ensure 子句的 begin 语句后面,code 会在 conditional 判断之前执行一次。

实例

#!/usr/bin/ruby#-*- coding: UTF-8 -*-$i=0$num=5beginputs("在循环语句中 i = #$i")$i+=1endwhile$i

尝试一下 »

以上实例输出结果为:

在循环语句中 i = 0

在循环语句中 i = 1

在循环语句中 i = 2

在循环语句中 i = 3

在循环语句中 i = 4

Ruby until 语句

语法

untilconditional[do]codeend

当 conditional 为假时,执行 code。

语法中 do 可以省略不写。但若要在一行内写出 until 式,则必须以 do 隔开条件式或程式区块。

实例

#!/usr/bin/ruby#-*- coding: UTF-8 -*-$i=0$num=5until$i>$numdoputs("在循环语句中 i = #$i")$i+=1;end

尝试一下 »

以上实例输出结果为:

在循环语句中 i = 0

在循环语句中 i = 1

在循环语句中 i = 2

在循环语句中 i = 3

在循环语句中 i = 4

在循环语句中 i = 5

Ruby until 修饰符

语法

codeuntilconditional或者begincodeenduntilconditional

当 conditional 为 false 时,执行 code。

如果 until 修饰符跟在一个没有 rescue 或 ensure 子句的 begin 语句后面,code 会在 conditional 判断之前执行一次。

实例

#!/usr/bin/ruby#-*- coding: UTF-8 -*-$i=0$num=5beginputs("在循环语句中 i = #$i")$i+=1;enduntil$i>$num

尝试一下 »

以上实例输出结果为:

在循环语句中 i = 0

在循环语句中 i = 1

在循环语句中 i = 2

在循环语句中 i = 3

在循环语句中 i = 4

在循环语句中 i = 5

Ruby for 语句

语法

forvariable[,variable...]inexpression[do]codeend

先计算表达式得到一个对象,然后针对 expression 中的每个元素分别执行一次 code。

实例

#!/usr/bin/ruby#-*- coding: UTF-8 -*-foriin0..5puts"局部变量的值为 #{i}"end

尝试一下 »

在这里,我们已经定义了范围 0..5。语句 for i in 0..5 允许 i 的值从 0 到 5(包含 5)。

以上实例输出结果为:

局部变量的值为 0

局部变量的值为 1

局部变量的值为 2

局部变量的值为 3

局部变量的值为 4

局部变量的值为 5

for...in 循环几乎是完全等价于:

(expression).eachdo|variable[,variable...]|codeend

但是,for 循环不会为局部变量创建一个新的作用域。

语法中 do 可以省略不写。但若要在一行内写出 for 式,则必须以 do 隔开条件式或程式区块。

实例

#!/usr/bin/ruby#-*- coding: UTF-8 -*-(0..5).eachdo|i|puts"局部变量的值为 #{i}"end

尝试一下 »

以上实例输出结果为:

局部变量的值为 0

局部变量的值为 1

局部变量的值为 2

局部变量的值为 3

局部变量的值为 4

局部变量的值为 5

Ruby break 语句

语法

break

终止最内部的循环。如果在块内调用,则终止相关块的方法(方法返回 nil)。

实例

#!/usr/bin/ruby#-*- coding: UTF-8 -*-foriin0..5ifi>2thenbreakendputs"局部变量的值为 #{i}"end

尝试一下 »

以上实例输出结果为:

局部变量的值为 0

局部变量的值为 1

局部变量的值为 2

Ruby next 语句

语法

next

跳到循环的下一个迭代。如果在块内调用,则终止块的执行(yield 表达式返回 nil)。

实例

#!/usr/bin/ruby#-*- coding: UTF-8 -*-foriin0..5ifi<2thennextendputs"局部变量的值为 #{i}"end

尝试一下 »

以上实例输出结果为:

局部变量的值为 2

局部变量的值为 3

局部变量的值为 4

局部变量的值为 5

Ruby redo 语句

语法

redo

重新开始最内部循环的该次迭代,不检查循环条件。如果在块内调用,则重新开始 yield 或 call。

实例

#!/usr/bin/ruby#-*- coding: UTF-8 -*-foriin0..5ifi<2thenputs"局部变量的值为 #{i}"redoendend

这将产生以下结果,并会进入一个无限循环:

局部变量的值为 0

局部变量的值为 0

............................

Ruby retry 语句

注意:1.9以及之后的版本不支持在循环中使用retry。

语法

retry

如果 retry 出现在 begin 表达式的 rescue 子句中,则从 begin 主体的开头重新开始。

begindo_something#抛出的异常rescue#处理错误retry#重新从 begin 开始end

如果 retry 出现在迭代内、块内或者 for 表达式的主体内,则重新开始迭代调用。迭代的参数会重新评估。

foriin1..5retryifsome_condition#重新从 i == 1 开始end

实例

#!/usr/bin/ruby#-*- coding: UTF-8 -*-foriin1..5retryifi>2puts"局部变量的值为 #{i}"end

这将产生以下结果,并会进入一个无限循环:

局部变量的值为 1

局部变量的值为 2

局部变量的值为 1

局部变量的值为 2

局部变量的值为 1

局部变量的值为 2

............................

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可 6私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值