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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/419916.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jenkins是什么_使用 Jenkins 自动发布服务到 Kubernetes

使用 Jenkins 自动发布服务到 KubernetesJenkins 是什么一个比较流行的开源 CI/CD 工具CI/CD : 持续集成/持续部署Kubernetes 是什么容器化工具 -- 一个开源的&#xff0c;用于管理云平台中多个主机上的容器化的应用&#xff0c;Kubernetes的目标是让部署容器化的应用简单并且高…

2015.5.12站立会议

昨天我们将查阅的资料汇总&#xff0c;并进行了了解和分析&#xff0c;每个人都发表了自己在查阅资料过程中的认识和对这部分的理解&#xff0c;大家交换了意见。 今天我们准备将所了解的内容代码化&#xff0c;每人编写一部分代码&#xff0c;利用所查找的资料。 遇到的问题&a…

grav html5,如何通过html5实现摇一摇的功能

原理&#xff1a;使用DeviceMotion实现&#xff0c;关于DeviceMotion介绍可以查看https://developer.mozilla.org/en-US/docs/Web/Reference/Events/devicemotion通过DeviceMotionEvent&#xff0c;可以获得accelerationIncludingGravity的x,y,z属性&#xff0c;根据x,y,z属性的…

WPF DataGrid

前台代码 <DataGrid Name"gv_GetWork" AutoGenerateColumns"False" CanUserSortColumns"False" CanUserAddRows"False" Margin"5"> <!--鼠标经过事件--> <DataGrid.RowStyle> <Style TargetType"…

小程序怎么打出横线效果_成都小程序开发:哪些因素会影响小程序的运营效果?...

相信现在微信小程序对于大家来说都不陌生了&#xff0c;目前小程序在市场中的占有率比较高&#xff0c;也是用户比较喜欢的平台。对于初次开发小程序的企业商家&#xff0c;在小程序的开发运营时&#xff0c;往往会有一些细节性的问题&#xff0c;影响到小程序的运营效果。我们…

Android监听ScrollView滑动到顶端和底部

Android监听ScrollView滑动到顶端和底部package cn.testscrollview;import android.os.Bundle;import android.view.MotionEvent;import android.view.View;import android.view.View.OnTouchListener;import android.widget.ScrollView;import android.app.Activity;/*** Demo…

前端学习(1484):json-server工具使用

创建文件 json.db {"brands": [{"name": "TCL","date": "2018-05-30T08:07:20.0892","id": 1},{ "name": "TCL", "date": "2018-05-30T08:07:20.0892", "id"…

快照速度_网络推广——网络推广专员如何看待网站快照更新快慢问题?

百度搜索引擎针对网站快照更新的问题曾有言明&#xff0c;表示网站快照的更新快慢与网站权重没有太多的直接关系&#xff0c;因为搜索引擎对网站抓取频率与快照更新是两个不同的概念&#xff0c;然而有很多站长表示快照更新慢是不是因为网站内部出现问题&#xff1f;或者是网站…

浙江大学计算机学院工业设计复试比,2021浙江大学计算机学院工业设计工程研究生入学考试范围调整啦...

关于发布工业设计工程研究生入学考试范围的通知本通知为预通知&#xff0c;如有调整&#xff0c;以浙江大学研究生院正式发布的2021年硕士研究生招生简章及招生目录为准。自2021年硕士研究生招生考试(2020年冬季)起&#xff0c;浙江大学工业设计工程(计算机学院、软件学院)考试…

qtp的三种录制模式(转)

QTP提供三种不同的录制方式&#xff1a;正常录制&#xff08;Normal Recording&#xff09;、模拟录制&#xff08;Analog Recording&#xff09;和低级录制&#xff08;Low Level Recording&#xff09;。 1.正常录制&#xff08;Normal Recording&#xff09;  QTP默认的录…

kafka python框架_为什么选择R而不是Python做ETL

导读&#xff1a;1. 打破R慢的印象&#xff0c;ETL效率显著优于Python&#xff0c;堪比spark&#xff0c;clickhouse2. 对比python中的datatable、pandas、dask、cuDF、modin&#xff0c;R中data.table以及spark、clickhouse3. 探讨R中的ETL体系ETL在数据工作中起着至关重要的作…

无为职业学校计算机班,致盐亭职中2000级计算机三班全体同学的一封信

忆往夕&#xff0c;思念漫溢。看今朝&#xff0c;岁月峥嵘。曾几何时&#xff0c;我们泪洒赛场&#xff01;曾几何时&#xff0c;我们携手送别&#xff01;那几年&#xff0c;我们为友情歌唱。那几年&#xff0c;我们为生活感慨。“看我意气风发&#xff01;听我放声高歌&#…

python with用法

python中with可以明显改进代码友好度&#xff0c;比如&#xff1a; [python] view plaincopyprint? with open(a.txt) as f: print f.readlines() 为了我们自己的类也可以使用with&#xff0c; 只要给这个类增加两个函数__enter__, __exit__即可&#xff1a; [python] v…

k型热电偶材料_电热汇分享热电偶测温元件符号、标准及参数详解

有人咨询电热汇问&#xff1a;热电偶测温元件符号、标准及参数是什么&#xff1f;今天来详细介绍一下。一、热电偶测温元件符号当导电物质处于温度时&#xff0c;其电子或空穴会随着温度梯度由高温区往低温区移动&#xff0c;由此产生的电荷堆积的现象称作热电效应&#xff0c;…

计算机ip地址配置参数,指定电脑的IP地址和DNS等参数配置方法

使用宽带路由器的话一般建议手工指定电脑的IP地址和DNS等参数&#xff0c;设置方法参考下文。如果你使用的是Windows 2000或Windows XP系统&#xff0c;请点击 “网上邻居”――> “本地连接”――>“属性”――>“Internet协议 (TCP/IP)属性”&#xff0c;将会看到如…

使用 ServiceStack 构建跨平台 Web 服务(转)

出处:http://www.cnblogs.com/shanyou/p/3348347.html 本文主要来自MSDN杂志《Building Cross-Platform Web Services with ServiceStack》&#xff0c;Windows Communication Foundation (WCF) 是一个相当优秀的服务框架&#xff0c;当我们讨论跨平台的服务的时候&#xff0c;…