Ruby学习札记(7)-Ruby中具有循环控制的方法和语句大归纳

 Ruby学习札记(7)-Ruby中具有循环控制的方法和语句大归纳

        Ruby语言与C/C++、Java、C#等语言,有很多独特之处,这篇文章简单介绍Ruby语言具有循环控制的多种方法和语句。至于哪些是方法和语句,参考下表,本文不再明确分开。

 语句方法
times 
for 
while 
until 
each 
loop 

(1)while语句

while 反复执行的条件 do

   想要反复执行的动作

end

说明:do关键字可以省略,举个例子,如下

i = 1
while i <= 10
  print(i, "\n")
  i = i + 1
end

有点眼熟吧,只是少了{},多了end,继续看下去。

 

(2)times方法

反复次数.times {

    想要反复的动作

}

说明:{…}可以与do…end互换。举个例子,如下

i = 1
10.times {
  print(i, "\n")
  i = i + 1
}

 

(3)each方法

数组.each {|变量|

    想要反复执行的动作

}

举个较“奇怪”的例子,如下

#encoding: utf-8

arr = ["小林", 21, '女', 'A']
arr[5] = 163.30
print 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 = 0
for i in 1..5
  sum = sum + i
end
print 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 = 1
until i > 10
  print(i, "\n")
  i = i + 1
end

 

(6)loop方法

loop {

    想要重复执行的动作

}

说明:如果loop里面没有跳出的语句(例如break),那么将是死循环。还是举个上面的例子,如下

i = 1
loop do
  if i == 11
    break
  end
  print(i, "\n")
  i = i + 1
end

如果你发现{…}怎么换成do…end,那你一定没有看到(2)的说明,它们可以互换的。谢谢看到这里:)

好了,关于Ruby语言的循环控制就归纳到这里,如果有新发现,会继续补上。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值