スポンサーリンク
スポンサーリンク
解答例
while !isBlocked {
while !isOnGem {
moveForward()
}
collectGem()
turnLeft()
}
解説
whileループをネストします。
『ネスト』とは、
繰り返し実行されるコードブロック(ループなど)の中に別のコードブロックを入れること
ですね。
この課題にはすでにその型が用意されているので、付け足してみましょう。
最初に、大きな枠で考えられる『!isBlocked
』を作ります。
真ん中に向かって進み、行き止まりがゴールだからです。
その中に、『!isOnGem
』で、またwhileループを作ります。
左折したい場所に、いつも宝石があるので、それを条件にするわけです。
『宝石上にいない間は前進』していき、『isOnGem
』になると宝石を集め、左折します。
ゴールすると、以下のメッセージが現れます。
気をつけてください。whileループのブール条件がいつまでも当てはまると、
コードが無限ループで永遠に実行され、コンピュータがフリーズしてしまいます。
恐ろしや。。。
要点まとめ
・whileループを作るときは、無限ループにならないように気をつけよう
スポンサーリンク