codemonkey少兒編程【112-1119】邏輯與事件-“布爾邏輯”歌劇

這節課我們將介紹一個在條件語句中非常有用的工具,邏輯運算符, 具體來說,我們將學習“and”(邏輯與)操作符。  

學習目標

繼續練習until循環的使用

學習使用邏輯運算“and”

函數、“and”運算符的綜合使用

知識講解

and 邏輯與,可以理解為并且的意思.

我們之前學習的until循環只有一個條件,今天呢我們還會遇到具有兩個條件的until循環,也就意味著只有計算機等待兩個條件都為真的時候才會停止執行until里的代碼,繼續執行后面的程序。

比如我們過馬路的時候,發現對面是紅燈,此時還有車輛經過,我們知道此時必須等待,不能過馬路。過了一小會兒,馬路上沒有車了,但是對面還是紅燈,我們能過馬路嗎?同樣的問題,如果我們發現是綠燈,但是還是有車在經過,我們是不是也不能走啊。所以過馬路需要同時滿足兩個條件:

1、對面是綠燈 yes

2、馬路上沒有車輛在穿行 yes

我們用程序就可以這么寫了,使用and將兩個條件連接起來

until road.clear and light.green

    wait()

cross road

我們把過馬路這些情況整理成一個表格看一下:

綠燈
馬路上沒有車 綠燈and馬路上沒有車
no no     no
no
yes no
yes
no
no
yes
yes
yes

我們可以總結出,只有and運算符前后兩個條件都是真,程序才會往后執行。

實戰闖關:

第120關:糟了,請小心, 有只白老虎出現了 ! 你還記得之前學習的一直等待直到小貓睡著嗎?這一關我們要等待老虎睡著了再去吃掉香蕉(可以用step,也可以用goto函數)

codemonkey少兒編程【112-1119】邏輯與事件-“布爾邏輯”歌劇

第121關:“剛碰到一只老虎,這怎么又碰到一頭大熊啊,這也太不走運了吧,我還是繼續等它睡著了吧,不然我就要成為這頭熊的食物了?!毙薷囊幌逻@個程序中的錯誤,讓小猴吃到香蕉吧。

codemonkey少兒編程【112-1119】邏輯與事件-“布爾邏輯”歌劇

第122關:有三根香蕉,還是老辦法用for循環,然后我們再觀察一下,每次吃到香蕉是不是都要從大白熊面前經過啊,那么我們可不能魯莽,一定要每次等它睡著了再能行動。根據思路完成代碼調試(DEBUG)

codemonkey少兒編程【112-1119】邏輯與事件-“布爾邏輯”歌劇

第123關:這次前面有兩個家伙,要想吃掉香蕉必須等他們都睡著了才行啊。好吧,只能等,記住一定要都睡著了,用程序就是:一直等待直到老虎睡著并且(我們本節的新知識,邏輯與”and“)白熊也睡著,再去吃掉香蕉。

codemonkey少兒編程【112-1119】邏輯與事件-“布爾邏輯”歌劇

第124關:這一關提示與上一關是完全一樣的,不過在右側多了好幾行代碼,我們來看一看,還給了一個提示,檢查所有的判斷語句。

codemonkey少兒編程【112-1119】邏輯與事件-“布爾邏輯”歌劇

檢查一下代碼,并運行,你會發現這兩個判斷都沒有問題,那么為什么要給這么一個提示呢?那是為了讓我們充分理解邏輯與(“and”)的用法,因為運行后你會發現,只有跟熊說了“Good night, bear!”并且跟老虎說了“Sweet dreams, tiger!”,循環才能結束,最后才說“I've waited enough!”。從我們要達到的目的來看,這些程序并沒有什么實際作用,因此我們理解了用意后就可以大膽的刪除沒用的程序,讓小后去吃掉香蕉吧。

第125關:本關香蕉都在上方,因此只需要小猴等到老虎和熊都睡著了,就可以大膽的過去吃掉所有的香蕉了。

codemonkey少兒編程【112-1119】邏輯與事件-“布爾邏輯”歌劇

126關:我們的山羊朋友也來了,我們不僅要保護好小猴也不要讓山羊被吃掉喔!思路:用for循環來吃掉所有香蕉,每次都先等待老虎和熊都睡著,然后再根據香蕉的顏色來指定誰過去吃掉,本關就能順利通過了。

codemonkey少兒編程【112-1119】邏輯與事件-“布爾邏輯”歌劇

第127關:這一關我們通過定義一個waitForSafety()函數來執行等待,然后通過for循環挨個吃掉香蕉,因為每次都要從老虎與熊前面經過,所以在吃掉香蕉之間記得調用函數等待它們都睡著,再行動。

codemonkey少兒編程【112-1119】邏輯與事件-“布爾邏輯”歌劇

只需要完善waitForSafety()函數即可過關。

第128關:這一關看起來有點復雜,因為有山羊還有被冰凍的香蕉。

codemonkey少兒編程【112-1119】邏輯與事件-“布爾邏輯”歌劇

那么我們還是按照以往的經驗,先理一下思路:

首先有多個香蕉,那么必然要使用for循環挨個去吃,然而香蕉有冰凍的,所以我們要接著判斷香蕉是不是冰凍的,是的話就讓山羊過去,別急哦,等熊跟老虎都睡著再出發。最后讓小猴等老虎熊都睡著再去吃掉。

偽代碼如下

for b in bananas

    如果香蕉是冰凍的

        等待直到它們都睡著

        山羊前去撞破冰塊

    等待直到它們都睡著

    小猴去吃掉

答案:

codemonkey少兒編程【112-1119】邏輯與事件-“布爾邏輯”歌劇

codemonkey少兒編程【112-1119】邏輯與事件-“布爾邏輯”歌劇

codemonkey少兒編程【112-1119】邏輯與事件-“布爾邏輯”歌劇

codemonkey少兒編程【112-1119】邏輯與事件-“布爾邏輯”歌劇

codemonkey少兒編程【112-1119】邏輯與事件-“布爾邏輯”歌劇

codemonkey少兒編程【112-1119】邏輯與事件-“布爾邏輯”歌劇

codemonkey少兒編程【112-1119】邏輯與事件-“布爾邏輯”歌劇

codemonkey少兒編程【112-1119】邏輯與事件-“布爾邏輯”歌劇

codemonkey少兒編程【112-1119】邏輯與事件-“布爾邏輯”歌劇

codemonkey少兒編程【112-1119】邏輯與事件-“布爾邏輯”歌劇

本站內容未經許可,禁止任何網站及個人進行轉載。