注释
单行注释就是 #
多行注释比较奇怪是 用 = 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
然后这段又是一个死循环
时间: 2024-08-10 02:10:35