Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
75 lines (48 sloc) 1.04 KB

练习17. if条件表达式

if、 then、 else

if() 方法的形式:

if(<condition>, <do message>, <else do message>)

例子:

if(a == 10, "a is 10" print)

else 参数是可选的. 如果条件表达式执行为 false 或者 nil,都被视作 false。

执行结果也可以返回:

if(y < 10, x := y, x := 0)

和如下形式一样:

x := if(y < 10, y, 0)

条件可以这样用:

if(y < 10) then(x := y) else(x := 2)

支持 elseif():

if(y < 10) then(x := y)
elseif(y == 11) then(x := 0) else(x := 2)

ifTrue、ifFalse

支持 Smalltalk 风格的 ifTrue, ifFalse, ifNil 和 ifNonNil 方法:

(y < 10) ifTrue(x := y) ifFalse(x := 2)

条件表达式必须用圆括号括起来.

我们来尝试一下

// if 条件表达式

x := 100
y := 200
z := -100

if(x<y, "100 < 200" println, "100 > 200" println)

if(z<0, return (z .. " < 0") println)

运行 ex17.io ,应该会看到

> io ex17.io
100 < 200
-100 < 0

胜利在望,马上就是最后一个练习