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,比較他們並印出居於中間者。