BOO入门/流程控制/条件
BOO入门 > 流程控/条件 (上一章:变数 下一章:流程控制-循环)
If 述句
[编辑]if 述句让程式可以依据条件而执行不同的程式区块。如果给予的条件为真,与此相关的程式区块将会执行。
// if 述句
i = 5
if i == 5:
print "i 等於 5."
// 輸出結果
i 等於 5.
小心! 留意 i=5 与 i==5 的不同之处,i=5 是指定 5 给 i,而 i==5 则是比较 i 与 5。如果你在条件式里面使用了指定(也就是i=5),Boo将会发出警告。(译注:如果你使用过 Java, C# 或是 C/C++,相信对此不陌生。)
此外,你应该也注意到了,不像其他的语言,Boo 没有 then-endif 或是 do-end 或是 { }。程式区块是自动由 Boo 依据缩排来决定。依据缩排原则,你的程式也会比较容易看懂。
(译注:这也与 Python 一致,所以缩排很重要,tab 的统一也很重要,要不就统一使用 tab,要不就统一使用空白字元,如果混杂使用,Boo 也会提出警告)
你也可以在 if 程式区块里再使用 if
// 多個 if 述句
i = 5
if i > 0:
print "i 大於 0."
if i < 10:
print "i 小於 10."
if i > 5:
print "i 大於 5."
// 輸出結果
i 大於 0.
i 小於 10.
If-Else 述句
[编辑]与 if 相反地,就是 else 述句,当 if 述句的条件式为 false 时,就会执行 else 述句内的程式区块。
i = 5
if i > 5:
print "i 大於 5."
else:
print "i 小於或等於 5."
// 執行結果
// i 小於或等於 5.
很简单吧~
If-Elif-Else 述句
[编辑]现在如果你想要在 if 述句条件式为 false 之后,再检查某条件式的话,这也很简单,使用 elif 述句。
i = 5
if i > 5:
print "i 大於 5."
elif i == 5:
print "i 等於 5."
elif i < 5:
print "i 小於 5."
// 輸出結果:
// i 等於 5.
使用时,要记住,if 只能有一个,elif 可以有多个,else 则可有可无。
Unless 述句
[编辑]如果你想写出适合阅读的述句来检查条件式不为 true,unless 述句是个不错的选择。
i = 5
unless i == 5:
print "i 等於 5."
// 不會有輸出結果。
并不会有输出结果,因为 i 等于 5,但 unless 等同于 if not i==5,所以并不会印出"i 等于 5."。
作为修饰词
[编辑]就与 Ruby 与 Perl 相似,你可以修饰一个述句。
i = 0
print i
i = 5 if true
print i
i = 10 unless true
print i
// 輸出結果:
// 0
// 5
// 5
常见的条件式
[编辑]这儿列出一些常见的条件式用法:
运算子 | 代表意义 | 例子 |
---|---|---|
== | 等于 | 5 == 5 |
!= | 不等于 | 0 != 5 |
> | 大于 | 4 > 2 |
< | 小于 | 2 < 4 |
>= | 大于等于 | 7 >= 7 and 7 >= 4 |
<= | 小于等于 | 4 <= 8 and 6 <= 6 |
Not 条件
[编辑]检查条件式不为 true 时,你可以使用 not。
i = 0
if not i > 5:
print 'i 不大於 5'
// 輸出結果:
// i 不大於 5
多重条件
[编辑]检查超过一个以上的条件式,你可以使用 and 或者是 or。使用括号来改变运算的顺序。
i = 5
if i > 0 and i < 10:
print "i is between 0 and 10."
if i < 3 or i > 7:
print "i is not between 3 and 7."
if (i > 0 and i < 3) or (i > 7 and i < 10):
print "i is either between 0 and 3 or between 7 and 10."
// 輸出結果:
// i is between 0 and 10.
and 需要两边的条件式都是 true 才为 true,而 or 只需要其中一边的条件式为 true 或两者都是 true 时,即为 true。
练习
[编辑]- 现在有数值 x = 4, y = 8, 和 z = 6,比较他们并印出居于中间者。