Swift Playgrounds

コードを学ぼう1【3つの分かれ道】解答例と解説

3つの分かれ道

解答例

func traverseStairway() {
  for i in 1 ... 7 {
    moveForward()
  }
}

func clearStairway() {
  traverseStairway()
  toggleSwitch()
  turnRight()
  turnRight()
  traverseStairway()
  turnRight()
}

for i in 1 ... 3 {
  moveForward()
  moveForward()
  turnRight()
  clearStairway()
}

解説

パッと見、スイッチを押して帰ってくる動作を3回すればいいのかな、と思いますね。
1つ分のコードをひとまとめにして、forループで3回繰り返せば良いわけです。
ただ、スイッチに行くまで7ブロックもあるので、
moveForward()を7回書いてfuncで関数にまとめるのはちょっと長すぎます。
そこで、関数の中にforループを入れた物を作ります。
これだと、moveForward()を1回書けばいいので楽ですね。

ちなみに、traverseStairway()の『traverse』は、越える、横断するという意味、
『Stairway』は、階段のついた道、という意味です。
関数の名前は、このように後で見て分かりやすいものにすればいいと思います。
そしてそれをまた、次の関数の中に入れます。
一列分をクリアするclearStairway()を作ります。
そして最後に、forループで3回往復してゴールになります。

要点まとめ

forループが入った関数を作って、活用してみよう