循环结构在编程语言中是不可或缺的,所以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方法。

最新文章

  1. Linux yum配置文件详解
  2. 【分享】图解Windows Server 2012 R2 配置IIS 8全过程
  3. 【JAVA线程间通信技术】
  4. 开发《基于Arcgis Online的家政管理服务信息系统》随笔1
  5. CGI实现页面的动态生成
  6. CentOS 7 安装无线驱动
  7. kafka集群安装与配置
  8. Cocos2d-x中播放背景音乐
  9. Asm Shader Reference --- Shader Model 2.x part
  10. UITableView 协议中常用的方法
  11. ImportError: cannot import name webdriver
  12. 洛谷P5119 Convent 题解
  13. 基于Spring注解搭建SpringMVC项目
  14. POSIX标准 库文件
  15. Curator实现分布式锁
  16. 在linux中要直接查找的命令
  17. TLS 改变密码标准协议(Change Cipher Spec Protocol) 就是加密传输中每隔一段时间必须改变其加解密参数的协议
  18. 虚拟机安装VMware tools
  19. 在CentOS上搭建PHP服务器环境(可用)
  20. Android Studio 通过 git update 或者 pull 的时候出错及解决办法

热门文章

  1. DevExpress控件 GridControl 单元格编辑 回车
  2. 开发期间的GWT设置---加快编译速度
  3. x264 编码器选项分析 (x264 Codec Strong and Weak Points) 1
  4. java websockect
  5. [React] React Fundamentals: with-addons - ReactLink
  6. [AngularJS] Accessing The View-Model Inside The link() When Using controllerAs
  7. Android 开发中 iBeacon的使用
  8. how tomcat works 读书笔记四 tomcat的默认连接器
  9. Java SE 6 新特性: HTTP 增强--转
  10. [转] npm 模块安装机制简介