スポンサーリンク
スポンサーリンク
解答例
for i in 1 ... 7 {
moveForward()
if isOnGem && isBlockedLeft {
collectGem()
turnRight()
moveForward()
moveForward()
toggleSwitch()
turnLeft()
turnLeft()
moveForward()
moveForward()
turnRight()
} else if isOnGem {
collectGem()
}
}
解説
課題の名前にあるように、『2つの条件が揃うと動作する』というコードを作ります。
もし、左側が行き止まり、という条件だけだったら、
2歩目のonのスイッチまで反応してしまい、エラーが起きてしまいます。
『左側が行き止まりで、尚且つ宝石の上』を、論理AND演算子(&&)を使って表現します。
&&は、2つのブール値が両方ともtrueの場合のみ、trueになります。
そして、else if
を使って
『左側が行き止まりで、尚且つ宝石の上〝ではないけど〟宝石の上』にいる場合、宝石を取る、というコードを書きます。
7歩前進する中で、条件分岐を使いながら進んでゴールです。
要点まとめ
・&&を使うと、2つのブール条件にあった時に動作するコードを作れる
スポンサーリンク