跳轉到內容

Nimrod 程式設計/IfExtended

來自華夏公益教科書,開放的書籍,面向開放的世界

我們已經知道如何充分利用if命令,現在是繼續學習的時候了。讓我們再舉一個奴隸的例子。我們希望我們的奴隸在沒有咖啡和有咖啡的時候去煮咖啡。但你知道我們的奴隸很笨,不會告訴我們他不能煮咖啡,那怎麼辦呢?我們可以考慮這樣做

if theresCoffee(): makeSomeCofee()

if not theresCofee(): echo ("I couldn't make coffee")

嗯,這將奏效,但我對此並不滿意,如果我們更改了第一個條件,你也應該更改第二個條件(在程式設計中,更改越少越好),而且它增加了不必要的混亂,所以我建議這樣做

if theresCoffee(): makeSomeCofee()

else: echo ("I couldn't make coffee")

因此,我們在這裡所做的是新增我們稱之為else子句的內容,該子句的作用是在if失敗時執行它包含的程式碼。與if相反,它沒有條件,因為它總是被執行(當if失敗時,請記住)。

因此,它將始終執行某些操作,無論是if內部的程式碼還是else內部的程式碼。

我還有更多關於這方面的內容要教你,所以讓我們回到奴隸的例子。我們的奴隸向我們報告我們沒有咖啡,但讓我們更進一步,因為我們家附近(或豪宅,畢竟我們已經有了奴隸:))有一家咖啡店,我們希望他/她去買咖啡,前提是我們有足夠的錢

if theresCoffee(): makeSomeCoffee()

elif theresEnoughMoney():

  buyCoffee()

  makeSomeCoffee()

else: 
  echo ("I couldn't make coffee")

嗯,現在我們有兩個奇怪的東西,elif東西和if之後有兩個動作(到目前為止我們只有一個)。我們將把後面留到下一章。因此,elif這個詞是else和if的總和(實際上,elif的意思是ELse IF),所以它所做的是在滿足條件的情況下執行elif內部的動作。最後一段程式碼的含義是:如果有足夠的咖啡就煮一些咖啡,如果沒有,但有足夠的錢,就買咖啡並煮一些咖啡,最後,如果沒有足夠的錢和咖啡,就報告奴隸無法煮咖啡。如果你想知道elif和else子句在這裡有多重要,下面是程式碼,沒有它們(將elif和else翻譯成if)

if theresCoffee(): makeSomeCoffee()

if not theresCoffee() and theresEnoughMoney():

  buyCoffee()

  makeSomeCoffee()

if not theresCoffee() and not theresEnoughMoney(): 

  echo ("I couldn't make coffee")

正如你所看到的,我們只能使用if,這個程式的行為與沒有if的程式完全一樣。現在,你在這裡失去的是可讀性(這是非常重要的,因為據說人們只寫一次程式碼,卻要讀很多次),這裡還違反了程式設計的隱式規則:儘可能少地重複自己,之所以這樣,是因為如果你想更改像這個例子中的if子句這樣的東西,而你又到處都有它,即使你可以替換它,最好不要這樣做,因為替換可能會讓你玩一些不好的笑話。

華夏公益教科書