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语言的循环控制就归纳到这里,如果有新发现,会继续补上。

原创粉丝点击