# 第十一關 函式參數再練習 小杰:「師傅你就老實承認吧..你是不是認識我老闆?」 小杰:「還有你教我的都是 JAVA 啊,害我還得自己轉成 JavaScript..」 師傅:「我跟你老闆認識 2、30 年了,還有這樣的訓練安排是我故意的,這樣以後你學其他的語言才會舉一反三,懂為師的安排嗎?」 小杰:「...可惡,原來你早就跟老闆串通好了,假借帶我變強,實則是借刀花自己的特休來教育訓練」 師傅:「呵呵呵..小毛頭這些都是人生歷練啊,想當年我...嗚!」 **剎那間,師傅手撫著胸跪了下來,表情逐漸扭曲痛苦。** 小杰焦急著問:「師傅你怎麼啦!?」 師傅:「快幫我叫救護車,我心臟的老毛病又犯了!」 過了 15 分鐘後,救護人員風風火火的過來了,但師傅仍然執拗的要小杰做完它提供的課題。 小杰:「師傅你不要再固執了啦,等你養好我們再鍛鍊不就好了!」 師傅:「不行!這題你一定要今天做完,不然我就不上救護車!」 小杰:「什麼東西啊..」 小杰抓抓了頭,焦急著左顧右盼,怎麼會有人這麼固執呢?於是他將眼神望向了醫護人員,希望他們一起說服師傅。 醫護人員:「他情況蠻緊急的,現在交通也很塞車,如果沒有在一小時內出發的話,我們不能擔保他的性命哦。」 師傅氣若游絲地說:「一小時綽綽有餘了...小杰你快做吧,你今天不完成...我向老闆承諾的學習進度就無法完成,我 30 年的吃飯借據就無法一筆勾銷了。」 小杰:「什麼!?你竟然吃了這麼久的霸王飯,竟然還順便利用了我,我真的衰到---」 醫護人員:「可以快一點做決定嗎?時間快來不及了!」 > 此時的小杰也無法做抉擇,身為遊戲玩家的你,你的選擇是? > A:不理師傅,安全第一,在救護車與醫院上再來慢慢研究 > B:非常不情願地在現場,嘗試在一小時內解完題目,順便挑戰自己的極限 # 題目 ## 題目一:老闆想要隨時扣你的薪水 老闆:「今天是發薪日,先發給你薪資 23500 元(遞給小杰」 老闆:「以下三步驟動作請寫成程式」 老闆:「步驟一:昨天你上廁所太久了,我要扣你 1000 元」 老闆:「步驟二:小黑說不喜歡你煮的狗食,我要再扣你 3500 元 (再次取走」 老闆:「步驟三:我今天心情不太好,扣個 500 元意思一下」 小杰:「屁啦!心情不太好關我啥事!」 老闆:「這不是重點,快點算!將之前的寫法換成函式,並增加一個參數,讓我方便何時扣你多少都沒問題」 老闆:「最後你寫的函式,要執行三次,每次都要回報你的總薪水剩下多少。」 [Codepen 範例程式碼網址](https://codepen.io/liao/pen/dyGGxMJ) ![](https://i.imgur.com/LwAK0KL.png) ## 題目二: if + 指派運算子 老闆:「好了,現在我要告訴你贈品條件!」 * 目前小杰手上有 3 個贈品 * 消費滿 100 元就送對方贈品 **下圖為第八關截圖,請依照以下邏輯進行改寫**: 1. 現在來了三個客人,並依序有消費,A顧客消費 150、B 顧客消費 99、C 顧客消費 110。 2. 請設計一個函式,裡面代入一個參數為顧客消費金額,確認該客戶是否符合贈品條件,若符合就讓 `giftNum` 變數減少數量。 3. 並依序執行三次函式,每次函式皆會 return 目前贈品數量剩下多少。 [Codepen 網址](https://codepen.io/liao/pen/KKVVOMK) ![](https://i.imgur.com/8Y4pkef.png) ## 題目三:if+指派運算子 老闆:「我現在補齊給你總計 200 個贈品!」 老闆:「然後我覺得現在贈品門檻太高了,我決定大放送,**只要滿 50 元就送一個!以此類推,他買 500 元就送 10 個贈品!**」 小杰:「老闆你竟然利用我的特休,我跟你沒完啦。」 老闆:「別廢話,客人來了快點!他買完後告訴我贈品還夠不夠!」 **下圖為第八關截圖,giftNum 已改為 200 份,請依照以下邏輯進行改寫**: 1. 請用函式改寫,同時來了三組客人,請用你寫的函式連續執行三次,來幫助顧客是否有符合贈品條件。 2. 另外每次執行函式時,都必須告訴老闆一次目前贈品數量。 第一組客人:Mary 買了 10 份薯條,10 份漢堡 第二組客人:Bob 買了 1 份薯條 第三組客人:Tim 買了 20 份薯條,15 份漢堡 [Codepen 範例網址](https://codepen.io/liao/pen/rNxxXMM) ![](https://i.imgur.com/76390tl.png)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up