前ステージで、turnLeft()を3回連続で使うと90°x3=270°回って結果的に右向きになれることがわかりましたが、それを毎回打つとコードが長くなって見づらくなってしまいます。
そこで登場するのがfuncコマンドです。あるコマンドのセットをパックにして名前を付けて、その名前をコマンドとして呼び出せば、セットの中身を連続して実行してくれるというものです。このセットのことを関数と呼びます。数学の言葉なのでやや馴染みづらいですが、英語のfunctionを訳したもので、コマンド名のfuncはそれを略したものです。
使い方は、
1 2 3 4 5 6 |
func 関数の名前() { セットで実行したいコマンド1 セットで実行したいコマンド2 セットで実行したいコマンド3 .... } |
という感じです。関数の名前は自分で好きに決められます。その後に()をつけます(意味は追々わかります)。次に{を書いて最初の行は終わりです。次の行からセットで実行したいコマンドを順に書いていきます。何行でも構いません。そして最後のコマンドを書いたらもう一度改行して最後に}を書きます。{と}ではさまれた行がセット内容ということです。
ではさっそくfuncを使って、turnRight()とするとturnLeft()が3回連続で実行される関数を作り、それを使ってステージをクリアしてみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
//turnLeft()コマンド 3回をパックにしてturnRight()コマンドを作る func turnRight() { turnLeft() turnLeft() turnLeft() } //funcの{}の中に書いたコマンドは関数名で呼び出されない限り実行されません。 //つまりここまでの時点では見た目何も起きません。 //↓ここからが本編 moveForward() turnLeft() moveForward() turnRight() //funcで作ったオリジナル関数の呼び出し moveForward() turnRight() //funcで作ったオリジナル関数の呼び出し moveForward() turnRight() //funcで作ったオリジナル関数の呼び出し moveForward() turnLeft() moveForward() toggleSwitch() |
必須ではありませんが、{と}の間にある行は、先頭に空白を4つ入れて右にズラしておくと、コードを眺めた時にどこからどこが関数の内容なのか見やすくなります。アプリが自動でやってくれる場合もあります。