3列ある脇道の奥にスイッチがあります。列と列は同じだけ離れているので、 「次の列の入り口まで進み、右を向き、スイッチまで7歩歩き、スイッチを入れ、振り向き、脇道の入り口まで7歩戻り、次へ進める様向き直る」がパターンでしょうか。その中で、7歩進むのが生き帰りで2回あるので、それを関数として切り出してみました。
このように、どちらも繰り返し使うパターンを見つけた時に便利なfor文とfunc文ですが、for文はその場で同じ内容を連続して繰り返すのに使い、funcは分散してあちこちに出現するパターンをまとめるのに使う、という違いを憶えておきましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
//7歩前進する関数 func move7() { for i in 1 ... 7 { moveForward() } } //本編。同じ処理を3回繰り返す for i in 1 ... 3 { moveForward() moveForward() turnRight() move7() //7歩進む関数を利用 toggleSwitch() turnLeft() turnLeft() move7() //もう一度7歩進む関数を利用 turnRight() } |
これでは同じところを行ったり来たりして、2本目、3本目に進めません