Swift Playgrounds

コードを学ぼう1【回る】解答例と解説

回る

解答例

moveForward()

while isOnGem() {
  turnLeft()
  collectGem()
  moveForward()
  collectGem()
  turnLeft()
  moveForward()
  turnRight()
  moveForward()
}

解説

whileループを使うと、このようになります。
宝石の上にいる限り』このコードを繰り返します。
最初に一歩進むと、宝石の上にいるので実行が始まります。
全ての宝石を取り終わって、一番最初に宝石を取った場所に立つと条件が外れているので
動作がストップして終了します。

問題文にもあるように、他にも様々なゴールの仕方があるのですが
やはり見た目にすっきりしたものにしたいものですね。
例えば、forループの中にforループを入れると、以下のようになります。

for i in 1 ... 4 {
  for i in 1 ... 2 {
    moveForward()
    collectGem()
    turnLeft()
  }
  moveForward()
  turnRight()
}

正しい答えも間違った答えもありません

と書いてあります。
他にも条件分岐コードなど、色々な方法を試してみてくださいね。

要点まとめ

・今まで学んだ技を、色々使って自分だけの解決方法を見つけよう