シリーズ「高校『情報I』からみるプログラミングの考え方」は、今回が最終回となります。いままでアルゴリズムの考え方やデータの保存に使われる配列を説明しました。最終回は、関数について考えてみたいと思います。
中学の数学では、私たちはすでに関数を学びました。1次関数のグラフは直線、2次関数のグラフは放物線になります。では、プログラミングで使われている関数と中学校で学んだ関数と何が違うかを見てみます。まず、中学校の授業で、関数はどのように説明されたか、皆さん、覚えていますか?おそらく、先生は黒板に以下のような図を描いたのではないでしょうか?
関数は箱のようなもので、ある数値を入れると、その答えが出てきます。この謎の箱自体が関数です。つまり、入力の値xを関数に入れると、出力の値yを吐き出します。
例えば、1次関数の場合、y=2x の例を見ると、以下のような結果となります。入力値の2倍の結果が出力されます。
入力値 → 関数 → 出力値
1 2
2 4
3 6
4 8
5 10
このように、あるデータを入れて、何らかの処理を行って、その結果を出してくれるのが関数です。数学での関数には、入力値と出力値があります。では、プログラミングでの関数はどのようなものでしょうか?
プログラミングでの関数は、中学校で習った関数と似ている部分がありますが、さらに発展した部分があります。簡単にいうと、入力値と出力値が必ずあるわけではないということです。関数単体でも使えます。入力値だけある関数もあるし、出力値だけある関数もあります。もちろん、入力値と出力値が両方あれば、中学校で習った関数と同じものになります。
プログラミングでは、関数を使うとき、注意するべきいくつかのルールがあります。
1.入力値のことを「引数」といいます。出力値を「戻り値」または「返り値」といいます。
2.関数名の後ろに()をつける必要があります。()が漏れると、プログラムは、関数を変数と間違って処理することになります。大体の場合エラーになります。
3.引数は()の中に指定します。返り値は関数の処理の最後にreturnを使って出力します。
4.関数は呼ばれるまでには実行されません。逆に言うと、関数の中の処理を行う場合、関数を呼び出さなければなりません。
5.関数の中に宣言された変数はこの関数の中しか使えません。
引数があるかないか、返り値があるかないか、によって、関数には全部で4つのパターンがあります。今回簡単な例を出し比較してみてください。
1.パターン1:引数なし、戻り値なし
引数がないので、関数に渡すデータはありません。関数の中のデータを使って処理を行うことになります。戻り値もないので、処理した結果はそのまま表示することになります。
2.パターン2:引数あり、戻り値なし
引数があるので、関数の処理に外部のデータを渡して処理を行うことになります。外部データの渡し方は、関数を呼び出す時()の中に実際に使うデータを渡します。戻り値がないので、処理した結果をそのまま表示することになります。
パターン3:引数なし、戻り値あり
引数がないので、関数内のデータを使って処理することになります。戻り値がありますので、return を使って処理結果を関数の呼び出し側に渡します。その場合、呼び出し側は戻ってきた結果の値を変数に入れることが一般的です。
パターン4:引数あり、戻り値あり
引数もあり、戻り値もありますので、外部のデータを渡して処理した結果を、関数の呼び出し側に渡します。パターン4は、パターン2とパターン3の組み合わせです。
関数は4パターンもありますので、難しく感じますが、仕組みを理解すれば、難しいもんではありません。関数を使うことで、プログラムをよりわかりやすく書くことができます。大きなシステムを開発する時、関数をよく使います。ぜひ関数を理解して、活用してください。