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函數)
第121關:“剛碰到一只老虎,這怎么又碰到一頭大熊啊,這也太不走運了吧,我還是繼續等它睡著了吧,不然我就要成為這頭熊的食物了?!毙薷囊幌逻@個程序中的錯誤,讓小猴吃到香蕉吧。
第122關:有三根香蕉,還是老辦法用for循環,然后我們再觀察一下,每次吃到香蕉是不是都要從大白熊面前經過啊,那么我們可不能魯莽,一定要每次等它睡著了再能行動。根據思路完成代碼調試(DEBUG)
第123關:這次前面有兩個家伙,要想吃掉香蕉必須等他們都睡著了才行啊。好吧,只能等,記住一定要都睡著了,用程序就是:一直等待直到老虎睡著并且(我們本節的新知識,邏輯與”and“)白熊也睡著,再去吃掉香蕉。
第124關:這一關提示與上一關是完全一樣的,不過在右側多了好幾行代碼,我們來看一看,還給了一個提示,檢查所有的判斷語句。
檢查一下代碼,并運行,你會發現這兩個判斷都沒有問題,那么為什么要給這么一個提示呢?那是為了讓我們充分理解邏輯與(“and”)的用法,因為運行后你會發現,只有跟熊說了“Good night, bear!”并且跟老虎說了“Sweet dreams, tiger!”,循環才能結束,最后才說“I've waited enough!”。從我們要達到的目的來看,這些程序并沒有什么實際作用,因此我們理解了用意后就可以大膽的刪除沒用的程序,讓小后去吃掉香蕉吧。
第125關:本關香蕉都在上方,因此只需要小猴等到老虎和熊都睡著了,就可以大膽的過去吃掉所有的香蕉了。
126關:我們的山羊朋友也來了,我們不僅要保護好小猴也不要讓山羊被吃掉喔!思路:用for循環來吃掉所有香蕉,每次都先等待老虎和熊都睡著,然后再根據香蕉的顏色來指定誰過去吃掉,本關就能順利通過了。
第127關:這一關我們通過定義一個waitForSafety()函數來執行等待,然后通過for循環挨個吃掉香蕉,因為每次都要從老虎與熊前面經過,所以在吃掉香蕉之間記得調用函數等待它們都睡著,再行動。
只需要完善waitForSafety()函數即可過關。
第128關:這一關看起來有點復雜,因為有山羊還有被冰凍的香蕉。
那么我們還是按照以往的經驗,先理一下思路:
首先有多個香蕉,那么必然要使用for循環挨個去吃,然而香蕉有冰凍的,所以我們要接著判斷香蕉是不是冰凍的,是的話就讓山羊過去,別急哦,等熊跟老虎都睡著再出發。最后讓小猴等老虎熊都睡著再去吃掉。
偽代碼如下
for b in bananas
如果香蕉是冰凍的
等待直到它們都睡著
山羊前去撞破冰塊
等待直到它們都睡著
小猴去吃掉
答案:
本站內容未經許可,禁止任何網站及個人進行轉載。