码迷,mamicode.com
首页 > 其他好文 > 详细

有趣的Ruby-学习笔记2

时间:2015-12-22 01:17:16      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:

注释

单行注释就是 #
多行注释比较奇怪是 用 = begin 和 =end
#!/usr/bin/ruby -w

puts "Hello, Ruby!"

=begin
这是一个多行注释。
可扩展至任意数量的行。
但 =begin 和 =end 只能出现在第一行和最后一行。 
=end

条件判断

if conditional [then]
	  code...
[elsif conditional [then]
	  code...]...
[else
	  code...]
end


if 表达式用于条件执行。值 false 和 nil 为假,其他值都为真。请注意,Ruby 使用 elsif,不是使用 else if 和 elif。
通常我们省略保留字 then 。若想在一行内写出完整的 if 式,则必须以 then 隔开条件式和程式区块。如下所示:
if a == 4 then a = 7 end

实例
#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

x=1
if x > 2
   puts "x 大于 2"
elsif x <= 2 and x!=0
   puts "x 是 1"
else
   puts "无法得知 x 的值"
end

Ruby循环

语法
while conditional [do]
   code
end
或者
while conditional [:]
   code
end


语法中 do 或 : 可以省略不写。但若要在一行内写出 while 式,则必须以 do 或 : 隔开条件式或程式区块。
语法
code while condition

或者

begin 
  code 
end while conditional

until

比较特殊的是 until 语法
until conditional [do]
   code
end

实例
#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

$i = 0
$num = 5

until $i > $num  do
   puts("在循环语句中 i = #$i" )
   $i +=1;
end

for

for一般来说是使用率最高的循环方式
for variable [, variable ...] in expression [do]
   code
end
比如
#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

for i in 0..5
   puts "局部变量的值为 #{i}"
end

还可以这么写
#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

(0..5).each do |i|
   puts "局部变量的值为 #{i}"
end

next语句

相当于 continue 语句

redo

可以重新开始循环,不过很容易造成死循环,不知道为什么设计这个语法
#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

for i in 0..5
   if i < 2 then
      puts "局部变量的值为 #{i}"
      redo
   end
end

这个会产生一个死循环

retry语句

如果 retry 出现在 begin 表达式的 rescue 子句中,则从 begin 主体的开头重新开始。
begin
   do_something   # 抛出的异常
rescue
   # 处理错误
   retry          # 重新从 begin 开始
end
如果 retry 出现在迭代内、块内或者 for 表达式的主体内,则重新开始迭代调用。迭代的参数会重新评估。
for i in 1..5
   retry if some_condition # 重新从 i == 1 开始
end
实例
#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

for i in 1..5
   retry if  i > 2
   puts "局部变量的值为 #{i}"
end
然后这段又是一个死循环






有趣的Ruby-学习笔记2

标签:

原文地址:http://blog.csdn.net/nsrainbow/article/details/50375578

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!