循环结构在编程语言中是不可或缺的,所以Ruby中的循环也有其自定义的规则。

而我们关注循环结构,要知道两个因素:1) 循环的条件;2) 循环执行的内容

Ruby有一些方式来实现循环结构体

1. times方法

在前面已经有提到过了,语法如下:

循环次数.times do                     循环次数.times {
重复执行的动作 重复执行的动作
end } 也可以在times模块中加入变量
5.times { |i|
print "This is the", i+1, " time. \n"
} # i变量是从0开始计算的

2. for 语句

语法:
for 变量 in 开始数值..结束数值 do
反复执行的动作
end # do是可以省略的 from = 0
to = 20
sum = 0
for i in from..to
sum += 1
end 语法:
for 变量 in 对象
反复执行的动作
end names = ["Windy", "Cindy", "Jack", "Hugo"]
for name in names
print name, " likes Ruby. \n"
end

第二个语法的for语句,与java中的for each语句非常类似,for (i in list?) {...}

3. while 语句

while语句与JAVA中也是类似的

语法:
while 条件 do
反复执行的动作
end a = 1
sum = 0
while a < 10 do
sum += a
i += a
end

4. until 语句
其语法与while语句类似,只是只有条件不符合的时候,才会反复执行循环

语法:
until 条件 do
反复执行的动作
end
# do可以省略 sum = 0
until sum > 50
sum += 1
end
print sum # 以上until循环可以转换成下面的while循环
while !(sum > 50)
sum += 1
end

5. each 方法
在前面已经提到过这个方法了,这里就简要记录下语法

对象.each { |变量|

     想要反复执行的动作

}

6. loop方法

它是一种没有结束条件的方法,只是不断进行循环处理,示例如下:

loop {
print "Ruby"
}

循环的控制:

主要有如下关键字:break,next,redo;而在java中,则有break,continue,return

       命令 用途
break 停止动作,马上跳出循环
next 直接跳到下一个循环
redo 以相同的条件重新执行这一次循环

总结:当次数固定时,使用times方法比较好,而其他大部分循环几乎都可以使用while和each方法。

Ruby自学笔记(六)— 循环的更多相关文章

  1. Ruby自学笔记(四)— 数组,Hash,正则表达式简介

    今天学习的是数组和Hash,数组在很多编程语言中都能常常用到. 数组: 数组是存储数据的一种容器,在Ruby中,数组中存储的数据可以是任何类型的数据:这和JAVA不同,在JAVA中,数组是存储同一类型 ...

  2. Ruby自学笔记(一)— 基本概况

    之前一直想要多看看RESTful Service相关的东西,找到一本相关的书,但是里面的代码都是用Ruby写的,虽然知道编程语言都是类似的,但是看到一些陌生的语法,还是有些摸不着头脑,所以最近终于下定 ...

  3. Ruby自学笔记(五)— 条件判断

    条件判断,在编程语言中都存在,而Ruby中的条件判断和Java中类似,当然还是存在些许差别 Ruby中条件判断的条件: 1) 可以使用 ==,<,>等比较运算来作为条件,比较运算可以返回t ...

  4. Ruby自学笔记(三)— 方法Method

    Ruby做为面向对象语言,肯定要对对象进行相关的操作,这时候就涉及到方法了. 调用方法 - 对象.方法名(实参1,实参2,...,实参n) 方法的分类: 1. 实例方法:顾名思义,就是由实例来调用的方 ...

  5. Ruby自学笔记(二)— Ruby的一些基础知识

    Ruby安装好之后,我们就可以来实践Ruby语言了. 以下是一些学习到的简单基础知识: 1. 如何执行Ruby文件? 我们编写的Ruby文件是以rb为后缀名的,例如:XXX.rb.当要执行ruby文件 ...

  6. vue 自学笔记记录

    vue 自学笔记(一): 知识内容:  安装vue ,创建vue实例,安装第一个组件,单项数据流 https://www.cnblogs.com/baili-luoyun/p/10763163.htm ...

  7. Go语言学习笔记六: 循环语句

    Go语言学习笔记六: 循环语句 今天学了一个格式化代码的命令:gofmt -w chapter6.go for循环 for循环有3种形式: for init; condition; increment ...

  8. JavaScript高级程序设计之自学笔记(一)————Array类型

    以下为自学笔记. 一.Array类型 创建数组的基本方式有两种: 1.1第一种是使用Array构造函数(可省略new操作符). 1.2第二种是使用数组字面量表示法. 二.数组的访问 2.1访问方法 在 ...

  9. 《Linux内核设计与实现》课本第四章自学笔记——20135203齐岳

    <Linux内核设计与实现>课本第四章自学笔记 进程调度 By20135203齐岳 4.1 多任务 多任务操作系统就是能同时并发的交互执行多个进程的操作系统.多任务操作系统使多个进程处于堵 ...

随机推荐

  1. return的用处

    #include "stdio.h" main() { ,c=; ;a<;a++) { c=c+a; } printf("%d",c); return ; ...

  2. pomelo 服务器之间的通信

    master服务器在启动的时候会启动mater服务,生成一个MasterAgent,作为中心服务器. 然后所有服务器,包括mater服务器,都会启动monitor服务,生成一个MonitorAgent ...

  3. 登陆用户怎样获取验证码和保存用户到cookie中

    User表: User.java package user.domain; import java.io.Serializable; import java.util.Date; public cla ...

  4. CSS3动画变形Animations

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. Tomcat工作原理(转)

    Tomcat简介 作者:杨晓(http://blog.sina.com.cn/u/1237288325) 一.Tomcat背景 自从JSP发布之后,推出了各式各样的JSP引擎.Apache Group ...

  6. 如何彻底删除SVN中的文件和文件夹(附恢复方法)

    在SVN中如果删除某个文件或文件夹也可以在历史记录中进行找回,有的时候需要彻底删除某些文件,即不希望通过历史记录进行恢复,需要在服务器上对SVN的数据进行重新整理 这里假设SVN项目的目录为 /dat ...

  7. VMware-workstation-full-12.0.1-3160714

    https://download3.vmware.com/software/wkst/file/VMware-workstation-full-12.0.1-3160714.exe 5A02H-AU2 ...

  8. change buffer

    https://yq.aliyun.com/articles/222 change buffer: insert buffer delete buffer purge buffer 1.innodb_ ...

  9. IDL计算儒略日

    遥感数据还有一些文章中使用数据的时候,经常使用儒略日(Julian day),即计算该天是一年中的第几天.正好有时间,就用IDL写了段儿小代码,方便使用.   ;+   ; :Author: caoz ...

  10. hadoop之wordCount程序理解

    有篇文章http://www.cnblogs.com/xia520pi/archive/2012/05/16/2504205.html中介绍的