CodeMonkey过关学习笔记系列:151-165关 函数的返回

•“返回”小镇( RETURN TO SENDER )151~165

image14.jpeg

image168.jpeg

151 关挑战

使用 返回 return 指令,我们可以把某个 函数 function 的运算结果传送回来.

example = () ->
    return  not banana.rotten()

if example() #example() 函数返回 no
    goto banana
else
    turn 360

image169.jpeg

152 关挑战

通常函数 function 的 返回 return 结果取决于我们如何定义这个函数.

yummy = (x) ->
    return not x.rotten()
for b in bananas
    if yummy b
        goto b

image170.jpeg

153 关挑战

healthy = () ->
    return health() == 100

goto healthZone

until healthy()
    wait()
goto banana

image171.jpeg

154 关挑战

healthy = () ->
    return health() == 100

injured = () ->
    return health() < 70

//#在这里使用 healthy() 函数和 injured() 函数
for b in bananas
    goto b
    if injured()
        goto healthZone
        until healthy()
            wait()

image172.jpeg

155 关挑战

healthy = () ->
    return health() > 99


//#这里应该是正常的,如果你已经修复了 healthy() 函数
goto healthZone
until healthy()
    wait()
goto bush
goto banana

image173.jpeg

156 关挑战

safeFrom = (a) ->
    return a.sleeping() or a.playing() //#或者 or ?

//#另一种调用有参数的函数的用法是使用小括号 '()' 
until safeFrom(tiger)
    wait()

goto banana

image174.jpeg

157 关挑战

safeFrom = (a) ->
    return a.sleeping() or a.playing() //#修复这里吧

until safeFrom(tiger) and safeFrom(bear)
    wait()

goto banana

image175.jpeg

158 关挑战

请写出一个函数 function , 以便让它 返回 return 肯定 yes 或者是 否定 no 的结果.

negative = () ->
    return no //#改成 nopositive = () ->
    return yes //#这段代码是正常的

if negative()
    goto bananas[0]
if positive()
    goto bananas[1]

image176.jpeg

159 关挑战

在一个函数 function 里面,所有写在 返回 return 指令后面的内容都不会被执行.

foo = () ->
    return yes

if foo()
    goto banana
else
    say "nope"

CodeMonkey过关学习笔记系列:160-165关

•“返回”小镇( RETURN TO SENDER )151~165

image14.jpeg

image177.jpeg

160 关挑战
until not crow.watching()
    say "Boo!"
goto banana

image178.jpeg

161 关挑战

//请使用 说话 say 这个指令,直到安全为止.
safe = () ->
    return not crow.watching()

//#使用 say 函数来吓走乌鸦 crow 吧

until safe()
    say "x"
goto banana

image179.jpeg

162 关挑战

safe = () ->
    if crows[0].watching()
        return no
    if crows[1].watching()
        return no
    #如果到达这里意味着两只乌鸦都没有在监控啦
    return yes

#在这里使用 safe() 函数
goto banana


或者
safe = () ->
    if crows[0].watching()  or crows[1].watching() //0号或者1号乌鸦在监视,就是不安全的情况
        return no
    return yes

image180.jpeg

163 关挑战


safe = () ->
    #只有乌鸦监控的时候才返回 yes
    return not( crows[1].watching() or crows[0].watching())

until safe()
    say "Go away!"

for b in bananas

    goto b

image181.jpeg

164 关挑战

safe = () ->
     return  (not crows[0].watching() and not crows[1].watching() and not crows[2].watching())
或者
     return not (crows[0].watching() or crows[1].watching() or crows[2].watching())

until safe()
    say "Go away!"

goto banana

image182.jpeg

165 关挑战

safe = () ->
    for c in crows
        if c.watching()
            return no //#这样是安全的吗?
    //#如果到达这里意味着没有乌鸦在监控啦
    return yes

until safe()
    say "Go away!"

goto banana

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值