
関数の使い方を学ぶのによいツールはないかな
こうした悩みを解決します。
関数とは
処理をまとめて、都度呼び出して使うのが関数です。
プログラムを作るときは関数を多用します。
たとえば、下記のようにtestという関数を宣言しておき、main関数にてtest関数を呼び出して使う、というように使います。
int test(int i){
i++;
return i;
}
void main(void){
int num = 0;
num = test(num);
}
関数は複数の参照元から呼び出したり、1つの関数内で処理が冗長になる場合に分けておくだけでも可読性が上がったりするなど、非常に便利です。
プログラミングを学習する際は、順次処理、分岐処理、繰り返し処理と学んでいき、これらを用いて関数を導入すると、一気に学習者のプログラミングのレベルが上がります。
そこで関数を効率よく勉強するのにオススメなのでLightbot Hourです。
Lightbot Hour
Lightbot HourはiOS/Androidで提供されている無料アプリです。
ロボットを操作して、指定された色の床を光らせるプログラムを作成します。
全20ステージで、有料版を購入すればもっと学習できますが、関数の勉強用なら無料版で十分かと思います。

メインでプロシージャ(関数)を呼び、ロボットを操作します。
メイン自体は関数を呼んでいるだけで、ロボットは呼ばれた関数内の処理を実行しています。
ステージのレベルが上がると関数の中に別の関数を作成して処理させます。

関数1の中に関数2が呼ばれているのが分かります。
画像をよく見ると、関数1の中で関数1を呼んでいます。
関数1の頭から関数1の呼び出しまでの処理が延々と続きます。つまりwhileループですね。

メインで関数1と関数2を使いながら処理を進めるステージももちろんあります。
関数1と関数2にどういう処理を割り当てて、どうつなげれば目的の処理ができるのか考える良い機会です。
ただこれは大人でも難しく、児童用のプログラミング教材としては高難度です。
まとめ
処理をまとめて、都度呼び出して使うのが関数です
Lightbot HourはiOS/Androidで提供されている無料アプリです
あわせて読みたい:
プログラミング学習にブロックリーを推奨する理由を解説します
コメント