関数とは「処理をひとまとめにしたもの」
関数とは、プログラムの中でよく使う一連の処理を、あらかじめひとまとまりに整理しておき、必要な時にいつでも呼び出して使えるようにしたものです。数学の「関数」という言葉から来ていますが、プログラミングにおいては、より「決められた作業をまとめた手順書」に近いイメージで捉えると理解しやすくなります。
なぜ関数が必要なのか
もし関数という仕組みがなければ、プログラムの中で同じ処理が必要になるたびに、まったく同じコードを何度も書き写す必要があります。これは非常に手間がかかるだけでなく、後から修正が必要になった際、書き写した全ての箇所を1つずつ直して回らなければならず、修正漏れの原因にもなります。
関数として処理をまとめておけば、必要な時にその関数の名前を呼び出すだけで、同じ処理を何度でも簡単に再利用できます。修正が必要になった場合も、その関数の中身を1箇所直すだけで、それを使っている全ての場所に変更が反映されます。
「自動販売機」に例えると
関数の考え方は、自動販売機に例えるとわかりやすいです。私たちは、自動販売機の内部でどのような機械の動きが行われているかを知らなくても、「お金を入れて、ボタンを押す」という手順(関数の呼び出し)さえ行えば、欲しい飲み物(結果)を受け取ることができます。関数の中身の複雑な処理を意識しなくても、決められた使い方さえ知っていれば、誰でも簡単にその機能を利用できるのです。
関数の基本的な構成要素
多くのプログラミング言語における関数は、大きく分けて以下の要素で構成されています。
- 名前:その関数が何をするものかを表す名称
- 引数(ひきすう):関数に渡す、処理に必要な情報(自動販売機で言えば「入れるお金」や「押すボタン」にあたります)
- 戻り値:関数が処理を終えた後に返す結果(自動販売機で言えば「出てくる飲み物」にあたります)
図で見る「入力→処理→出力」の流れ
先ほどの自動販売機の例を、実際に図で確認してみましょう。
簡単なコード例で確認する
「2つの数字を受け取って、合計を返す」だけの、シンプルな関数をイメージしてみましょう(JavaScriptの例)。
function tasu(a, b) {
return a + b;
}
console.log(tasu(3, 5)); // 8 と表示される
tasuが関数の名前aとbが引数(渡された3と5がそれぞれ入る)return a + bの部分が、計算結果を戻り値として返している処理
tasu(3, 5) のように名前を呼び出すだけで、内部の計算処理を意識せずに合計を受け取れる点が、まさに「自動販売機」の考え方と同じです。
初めて関数を書くときの3ステップ
①「何度も同じ処理をしている場所」を探す
コードの中で、似たような処理を繰り返し書いている箇所がないかを探します。それが関数化の候補になります。
②入力(引数)と出力(戻り値)を決める
その処理に「何を渡す必要があるか」「何を返してほしいか」を整理します。
③処理をひとまとめにして、名前をつける
処理内容が一目でわかるような名前(例:合計を計算するなら calculateTotal など)をつけて関数として定義します。
要点を整理すると
関数は、「よく使う処理を再利用可能な形にまとめておく」という、プログラミングの基本かつ非常に重要な考え方です。この概念を理解することで、コードの整理整頓がぐっとしやすくなります。
あわせて読みたい:スコープ(変数の有効範囲)とは