星期一, 4月 28, 2008

[Boo]Boo(7) - if-elif-else、unless

Boo 的 if 述句與 python 相似:

i=5
if i>5:
print "i大於5"
elif i==5:
print "i等於5"
else:
print "i小於5"


很簡單。這邊額外要提到程式區塊的概念,像 C# 是用 { },Pascal 用 begin end,Python 與 Boo 是用縮排來決定程式區塊,所以縮排使用的字元很重要,千萬不要混雜使用,否則你會錯的莫名其妙,在開發時,最好一開始就決定好要使用 tab 字元或是特定數目的空白字元。

運算式,可以使用 and, or 來作連接,或是使用 not 來表示需要相反的條件式。

i=7
if i>=5 and i<=10:
print "i 介於 5~10 之間"
else:
print "超出範圍"
if not i==5:
print "i不等於5"


如果你沒接觸過 perl/python/ruby/php 的話,以下的用法應該會讓你感到新奇:

s="sad"
unless s=="sad":
print "Hello world!"
print "Hello world!" unless s=="sad"
print "I am sad" if s=="sad"


unless 是反面的 if,把它想成 if not 就對了,所以第三行並不會被執行。
此外,unless 與 if 也可以用來修飾前面的述句﹔以第四行來說,unless s=="sad"用來修飾前面的 print "Hello world!"﹔以第五行來說,if s=="sad"用來修飾前面的print "I am sad"﹔當條件符合時,才會印出。
因此第四行的 "Hello world!" 不會被印出,而第五行的 "I am sad" 則會被印出。

這些用法會讓人覺得程式也很口語化~

沒有留言: