Ruby学习札记(7)-Ruby中具有循环控制的方法和语句大归纳
来源:互联网 发布:手势锁屏软件 编辑:程序博客网 时间:2024/05/16 18:39
Ruby学习札记(7)-Ruby中具有循环控制的方法和语句大归纳
Ruby语言与C/C++、Java、C#等语言,有很多独特之处,这篇文章简单介绍Ruby语言具有循环控制的多种方法和语句。至于哪些是方法和语句,参考下表,本文不再明确分开。
语句方法times ○for○ while○ until○ each ○loop ○(1)while语句
while 反复执行的条件 do
想要反复执行的动作
end
说明:do关键字可以省略,举个例子,如下
i = 1while i <= 10 print(i, "\n") i = i + 1end
有点眼熟吧,只是少了{},多了end,继续看下去。
(2)times方法
反复次数.times {
想要反复的动作
}
说明:{…}可以与do…end互换。举个例子,如下
i = 110.times { print(i, "\n") i = i + 1}
(3)each方法
数组.each {|变量|
想要反复执行的动作
}
举个较“奇怪”的例子,如下
#encoding: utf-8arr = ["小林", 21, '女', 'A']arr[5] = 163.30print arr.size, " items\n"arr.each { |info| print info, ": " p info}
先看看运行结果吧,由于在CMD中会输出中文乱码,这个问题本人还未解决,即使是GBK也是乱码(希望有高手可以赐教),但是在Aptana Studio 3中是正常的,所以截个图在这里吧。
简单说明下:Ruby中数组声明用[],不用指明大小,而且大小可以自增,arr声明时只有4个元素,但是又在arr[5]中赋值,于是arr数组大小为6。这里arr[4]的值为nil,没有输出,这里输出了一个换行。
当然,each方法和前面的times方法,是Ruby中的迭代器,因此功能很多,这里只列举能有循环控制的方法,不具体讨论某个方法。
(4)for方法
形式1:
for 变量 in 开始的数值..结束的数值 do
想要重复执行的动作
end
说明:这里的“..”可不是省略号,也只有2个点,Ruby确实有些奇怪吧。举个例子,如下。
sum = 0for i in 1..5 sum = sum + iendprint sum, "\n"
这里do又被省略,想偷懒的话,有do出现就试着省略它,看行不行。
形式2:
for 变量 in 对象 do
想要重复进行的动作
end
说明:如果说前面的“开始的数值..结束的数值”也是这里的“对象”,也就是说形式1其实就是形式2,你会不会觉得Ruby实在太奇怪了,有点受不了吧L。前面的例子中1..5就是一个范围对象。举个遍历数组的例子吧,如下
names = ["awk", "Perl", "Python", "Ruby"]for name in names print name, "\n"end
怎么样,觉得Ruby你可以接受她(或他)吗?不管怎样,我要继续做笔记下去。
(5)util语句
until 条件 do
想要重复执行的动作
end
说明:当条件为假时,就重复执行;与while的判断完全相反。举个前面while用过的例子,如下
i = 1until i > 10 print(i, "\n") i = i + 1end
(6)loop方法
loop {
想要重复执行的动作
}
说明:如果loop里面没有跳出的语句(例如break),那么将是死循环。还是举个上面的例子,如下
i = 1loop do if i == 11 break end print(i, "\n") i = i + 1end
如果你发现{…}怎么换成do…end,那你一定没有看到(2)的说明,它们可以互换的。谢谢看到这里:)
好了,关于Ruby语言的循环控制就归纳到这里,如果有新发现,会继续补上。
- Ruby学习札记(7)-Ruby中具有循环控制的方法和语句大归纳
- ruby控制语句和循环语句
- ruby控制语句和循环语句
- Ruby学习札记(6)-比较print、puts和p方法
- Ruby学习札记(6)-比较print、puts和p方法
- ruby 语句和控制结构
- Ruby学习札记(3)- Ruby中gem的安装与卸载
- C#中有没有Ruby中那种redo和retry的循环控制操作? 有goto
- 我的Ruby学习历程之初识循环控制
- Ruby 循环控制
- ruby 循环语句
- ruby流程控制语句
- Ruby控制语句
- ruby 控制语句
- Ruby控制语句
- Ruby学习札记(1)-常量
- Ruby学习札记(2)-注释
- ruby 流程控制 方法
- 大道至简,职场上做人做事做管理
- 记录最近web的一些学习和后面的计划
- Android手机开发:网络连接-打开Url下载信息
- 桥接、交换和路由三者的区别
- POJ 百练2964: 日历问题
- Ruby学习札记(7)-Ruby中具有循环控制的方法和语句大归纳
- 构造函数析构函数输出顺序
- IPC-sem 信号量
- 基于LIBPCAP的HTTP协议还原与模式匹配
- 秋藕最补人 8款食谱益胃健脾 养血补虚
- 2011暑假总结
- 构建大型jQuery应用
- TCP Performance problems caused by interaction between Nagle's Algorithm and Delayed ACK
- 程序员装B指南