[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

関数 (function)

pointこの用語のポイント

pointプログラムの部品だよ

point処理をまとめたものだよ

point何かを入れると何かを計算して何かを返してくれるよ

スポンサーリンク

簡単に書くよ

関数 (function)とは

何かを入れると何かをして何かを返してくれる、プログラムの部品のこと
です。

image piyo

詳しく書くよ

突然ですが、自動販売機をイメージしてください。
自動販売機は

1.チャリンとお金を入れてボタンをポチっ押すと
2.お金をしまってどのジュースを出すかを判断して
3.ジュースがでてきます。ガコンっ。


という流れでお仕事をしてくれています。
もう少し簡略化して書くと

1.入力:お金、ボタンをポチっ
2.処理:お金をしまう、出すジュースを選ぶ
3.出力:ジュース


の流れです。

自動販売機は、お金の入力に対してジュースの出力があります。

この自動販売機をプログラムの世界に持っていったのが「関数」です。
何かを入れると何かをして何かを返してくれる部品のことです。

関数

別にプログラムに限った話ではないですけどね。
数学で出てくる「関数」も考え方は同じです。

……というのが真っ当な説明ですが、プログラミングの分野においては「何らかの処理(命令)をまとめたもの」と解釈しても構いません。

プログラムというのはコンピュータさんに対する命令書です。
コンピュータさんに対して「あれしろ、これしろ」という命令が書かれています。
そして、プログラミングはコンピュータさんに対する命令書を作る行為です。

それを踏まえて、コンピュータさんに対する以下の命令があったとしましょう。

1.起きろ
2.朝ご飯をよく噛んでゆっくり食べろ
3.お散歩をしろ
4.お昼ご飯をよく噛んでゆっくり食べろ
5.お昼寝をしろ
6.晩ご飯をよく噛んでゆっくり食べろ
7.寝ろ


ここで「2.」「4.」「6.」に注目してください。
朝ご飯、お昼ご飯、晩ご飯の違いはあれど、すべて「よく噛んでゆっくり食べろ」という命令です。
何回も同じようなことを言われたら、コンピュータさんもげんなりしそうですね。
「何回も同じことを言われなくても分かってるよ。うるせーなー」と感じるでしょう。

そこで、同じような命令をコンパクトにまとめて、スッキリさせることにしました。
「よく噛んでゆっくり食べろ」という長ったらしい命令を「食事しろ」というコンパクトな表現に置き換え、別途、食事の仕方を指示したのです。

1.起きろ
2.食事しろ(朝ご飯
3.お散歩をしろ
4.食事しろ(お昼ご飯
5.お昼寝をしろ
6.食事しろ(晩ご飯
7.寝ろ

■食事の仕方
1.よく噛んで
2.ゆっくり食べろ


どうでしょうか?
さっきより、ちょびっと見やすくなりましたよね。

「2.」「4.」「6.」に分散していた「よく噛んでゆっくり食べろ」という命令が「食事の仕方」という形で1つにまとまりました。
この、食事の仕方を書いた部分が、関数です。

関数にすることによって、命令の変更も楽になります。

例えば、お母さんから「食事の前には手を洗え!」と怒られたとしましょう。

関数にしていない場合は「2.」「4.」「6.」を、すべて直さなくてはいけません。
それぞれに対して「手を洗ってから食べなさい」な指示を追加する必要があります。
ですが、関数にしてあれば「食事の仕方」の部分一か所に「手を洗ってから食べなさい」な指示を追加すれば、事足ります。

あるいは、育ち盛り食べ盛りで、夜食も食べたくなったとしましょう。
関数にしてあれば、追加も簡単です。
実際の処理の部分に

8.食事しろ(夜食)

を追加するだけで済みます。

このように「プログラムの作成や変更を楽にする」ことが、プログラミングの分野における関数の主な役割です。
楽にならないのであれば、関数化する意味は(あまり)ありません。

だって、その気になれば、関数なんてなくてもプログラムは作れますからね。
同じような命令を何回も書くのが面倒だから関数にするのです。

ちなみに関数へ入れるものを「引数(ひきすう)」と言います。
関数から出てくるのは「戻り値(もどりち)」です。

関数2

基本的なことなので、併せて覚えてください。

ついでに書いておくと、戻り値のある関数を「関数(ファンクション)」、戻り値のない関数を「プロシージャ」と呼び分けるプログラミング言語もあります。

関数3

こちらも、余裕があれば、ついでに覚えてあげてください。

image piyo2

一言でまとめるよ

まぁ「関数」って単語が出てきたら「処理をまとめたプログラムの部品なんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク