Ruby 教程
1. Ruby 教程 2. Ruby 简介 3. Ruby 环境 4. Ruby 安装 – Linux 5. Ruby 安装 – Windows 6. Ruby 命令行选项 7. Ruby 环境变量 8. Ruby 语法 9. Ruby 类和对象 10. Ruby 类案例 11. Ruby 变量 12. Ruby 运算符 13. Ruby 注释 14. Ruby 条件判断 15. Ruby 循环 16. Ruby 方法 17. Ruby 块 18. Ruby 模块(Module) 19. Ruby 字符串(String) 20. Ruby 数组(Array) 21. Ruby 哈希(Hash) 22. Ruby 日期 & 时间(Date & Time) 23. Ruby 范围(Range) 24. Ruby 迭代器 25. Ruby 文件的输入与输出 26. Ruby File 类和方法 27. Ruby Dir 类和方法 28. Ruby 异常 29. Ruby 正则表达式 30. Ruby CGI 编程 31. Ruby CGI方法 32. Ruby CGI Cookie 33. Ruby CGI Session 34. Ruby 发送邮件 – SMTP 35. Ruby Socket 编程 36. Ruby XML, XSLT 和 XPath 教程 37. Ruby Web Service 应用 – SOAP4R 38. Ruby 多线程 39. Ruby JSON 40. Ruby RubyGems

Ruby 条件判断

Ruby 判断

Ruby 提供了几种很常见的条件结构。在这里,我们将解释所有的条件语句和 Ruby 中可用的修饰符。

Ruby if...else 语句

语法

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

if 表达式用于条件执行。值 falsenil 为假,其他值都为真。请注意,Ruby 使用 elsif,不是使用 else if 和 elif。

如果 conditional 为真,则执行 code。如果 conditional 不为真,则执行 else 子句中指定的 code

通常我们省略保留字 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

55面试教程网 »

以上实例输出结果:


x 是 1

Ruby if 修饰符

语法

code if condition

if修饰词组表示当 if 右边之条件成立时才执行 if 左边的式子。即如果 conditional 为真,则执行 code

实例

#!/usr/bin/ruby $debug=1 print "debug\n" if $debug

55面试教程网 »

以上实例输出结果:


debug

Ruby unless 语句

语法

unless conditional [then] code [else code ] end

unless式和 if式作用相反,即如果 conditional 为假,则执行 code。如果 conditional 为真,则执行 else 子句中指定的 code

实例

#!/usr/bin/ruby # -*- coding: UTF-8 -*- x=1 unless x>2 puts "x 小于 2" else puts "x 大于 2" end

55面试教程网 »

以上实例输出结果为:


x 小于 2

Ruby unless 修饰符

语法

code unless conditional

如果 conditional 为假,则执行 code

实例

#!/usr/bin/ruby # -*- coding: UTF-8 -*- $var = 1 print "1 -- 这一行输出\n" if $var print "2 -- 这一行不输出\n" unless $var $var = false print "3 -- 这一行输出\n" unless $var

55面试教程网 »

以上实例输出结果:


1 -- 这一行输出

3 -- 这一行输出

Ruby case 语句

语法

case expression [when expression [, expression ...] [then] code ]... [else code ] end

case先对一个 expression 进行匹配判断,然后根据匹配结果进行分支选择。

它使用 ===运算符比较 when 指定的 expression,若一致的话就执行 when 部分的内容。

通常我们省略保留字 then 。若想在一行内写出完整的 when 式,则必须以 then 隔开条件式和程式区块。如下所示:

when a == 4 then a = 7 end

因此:

case expr0 when expr1, expr2 stmt1 when expr3, expr4 stmt2 else stmt3 end

基本上类似于:

_tmp = expr0 if expr1 === _tmp || expr2 === _tmp stmt1 elsif expr3 === _tmp || expr4 === _tmp stmt2 else stmt3 end

实例

#!/usr/bin/ruby # -*- coding: UTF-8 -*- $age = 5 case $age when 0 .. 2 puts "婴儿" when 3 .. 6 puts "小孩" when 7 .. 12 puts "child" when 13 .. 18 puts "少年" else puts "其他年龄段的" end

55面试教程网 »

以上实例输出结果为:


小孩

当case的"表达式"部分被省略时,将计算第一个when条件部分为真的表达式。

foo = false bar = true quu = false case when foo then puts 'foo is true' when bar then puts 'bar is true' when quu then puts 'quu is true' end # 显示 "bar is true"