Ruby 是一种动态编程语言,它提供了一系列的判断条件,可以帮助开发者更好地控制代码的执行流程。Ruby 中有三个主要的判断条件:if、unless 和 case。
# if 语句 if condition # code to be executed if condition is true else # code to be executed if condition is false end
if 语句是最常用的判断条件之一,它允许开发者根据特定的条件执行不同的代码块。如果条件为真,就会执行 if 块中的代码;如果条件为假,就会执行 else 块中的代码。
# unless 语句 unless condition # code to be executed if condition is false else # code to be executed if condition is true end
unless 语句是一个特殊形式的 if 语句,它具有相同的功能,但语法上略有不同。如果条件为假(false)时就会执行 unless 块中的代码;如果条件为真时就会执行 else 块中的代码。
# case 语句 case expression when value1 # code to be executed when expression equals value1 when value2 # code to be executed when expression equals value2 else # code to be executed when expression does not equal any value end
case 语句是 Ruby 用于处理复杂逻辑判断时更常用的方法。case 语句具有多个 when 分支和一个默认 else 分支。当 case 表达式匹配特定值时就会执行相应分支中的代码。
Ruby 提供了其他现代语言中很常见的条件结构。在这里,我们将解释所有的条件语句和 Ruby 中可用的修饰符。
if conditional [then] code... [elsif conditional [then] code...]... [else code...] end
if 表达式用于条件执行。值 false 和 nil 为假,其他值都为真。请注意,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
x 是 1
code if condition
如果 conditional 为真,则执行 code。
#!/usr/bin/ruby $debug=1 print "debugn" if $debug
这将产生以下结果:
debug
unless conditional [then] code [else code ] end
unless式和 if式作用相反,即如果 conditional 为假,则执行 code。如果 conditional 为真,则执行 else 子句中指定的 code。
#!/usr/bin/ruby x=1 unless x>2 puts "x 小于 2" else puts "x 大于 2" end
这将产生以下结果:
x 小于 2
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
这将产生以下结果:
1 -- 这一行输出 3 -- 这一行输出
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
这将产生以下结果:
小孩
范围(Range)无处不在:January 到 December、 0 到 9、等等。Ruby 支持范围,并允许我们以不同的方式使用范围:作为序列的范围...
什么是 SOAP? 简单对象访问协议(SOAP,全写为Simple Object Access Protocol)是交换数据的一种协议规范。SOAP 是一种简单的基于 ...
介绍提供倒计时管理能力。代码演示基本用法span总时间:{{ current.total }}/spanspan剩余天数:{{ current.days }}/spanspan剩...