【初心者向け】世界一わかりやすく(?)プログラミングの『関数』『メソッド』とは？ を伝える。具体例とイラストで。

#▶︎ 結論
**『関数』とは『ミキサー』である。**
<img width="500" alt="関数Qiita_素材.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/210717/b57ecb1e-a3cb-6b55-425f-466c299a8277.png">

#▶︎ どんな人に向けた記事なのか
**▶︎プログラミング初学者** (勉強はじめてから3-6ヶ月くらいまで)
**▶︎文系でプログラミングを始めたばかり**
**▶︎関数の宣言の仕方は分かるが、実際何なのかよく分からない**
**▶︎関数・メソッドって何？ 聞いたこともない。**

↑上記のような
『プログラミング勉強中だけど、関数とかメソッドとか言われてもイマイチ分からない...』
という人が、

**「ああ、関数のイメージってこんな感じね！」**
**「あの記事で言っていたことって、こういうことだったのか！」**
という状態になることを目標にした記事です。


#▶︎ 前提
**・『関数』『メソッド』の違いはこの記事では無視し、ひとくくりに『関数』として扱います。**
　↑について気になる場合は『[関数とメソッドの違いとは（Pythonでわかりやすく説明）](https://gammasoft.jp/blog/difference-method-vs-function/)』を見てみて下さい。
　個人的にはいくつか見た中で一番分かりやすかったです。


#▶︎ まず、 ミキサーとは？
関数について説明する前に、先ずミキサーの働きについて整理します。

###① フルーツを入れる
<img width="300" alt="関数Qiita_素材.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/210717/e225a3cb-fa0e-b870-5fd2-79eb3bc7acb3.png">

###② ミキサーで混ぜる
<img width="250" alt="関数Qiita_素材.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/210717/3d7ab6e0-af3f-ea2d-4ed2-58bad91a4ea5.png">


###③ ジュースできる
<img width="270" alt="関数Qiita_素材 3.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/210717/5e3b1868-f8d6-2589-6bac-336d512f08ae.png"> 

###④まとめると
<img width="481" alt="関数Qiita_素材 2.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/210717/350089f8-dfc2-f3f0-bc0e-89c1935ff58e.png">
↑全体はこんな流れになっています。

#▶︎ では、 関数とは？
###・ ミキサーです。
<img width="800" alt="関数Qiita_素材.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/210717/0397c22b-c7d9-5f80-a7a9-ab0f9784bc2e.png">
(『引数』『戻り値』が初見だという人は「まあそんなものもあるのね」と思っておいて下さい)

###・ 解説
=== === ===
**『ミキサー』**に**『フルーツ』**を入れると、
ごちゃ混ぜにしてくれて、
その結果**『ジュース』**ができます。

それと同様に、

**『関数』**に**『引数』**を入れてあげると、
処理してくれて、
その結果**『戻り値』**が返ってきます。
=== === ===

慣れないうちは自分で考える時、何か記事を読む時に
▶︎ 引数 → **フルーツ**
▶︎ 関数 → **ミキサー**
▶︎ 戻り値 → **ジュース**

**と読み替えるとイメージしやすくて楽です。**

###・ もう少し解説
**ミキサー(関数)**は、いつだって同じことをしてくれます。
混ぜるプロです。

逆に言えば、**混ぜることしかできません。**

でも、
**入れてあげるフルーツ(引数)** を変えると
**出てくるジュース(戻り値)** も変わります。
<img width="800" alt="関数Qiita_素材.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/210717/8af3466e-00d5-e647-ae9b-37a50c550996.png">
---
<img width="1100" alt="関数Qiita_素材.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/210717/1468a081-f7d6-ad8a-266a-aa9935c9db60.png">
---
<img width="1000" alt="関数Qiita_素材.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/210717/2024cf9c-d475-8406-8a44-1f679f6f2332.png">

↑これがミキサー(関数) の性質です。

#▶︎ もう一度、結論
**『関数』とは『ミキサー』である。**
<img width="500" alt="関数Qiita_素材.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/210717/b57ecb1e-a3cb-6b55-425f-466c299a8277.png">

この記事を読んだ後だと、
色々な方が書いて下さっている関数についての記事が読みやすくなっていると思います。


#▶︎ おわりに

筆者は[大学生限定プログラミングコミュニティ『GeekSalon』](https://geek-salon.com/)の
Gameアプリ開発コースでUnityを用いたゲームアプリ開発を教えている者です。

自分がプログラミング学び始めの時。
『関数』『メソッド』という言葉をたくさん調べました。

プログラミングにおける関数やメソッドの宣言の仕方はたくさん出てきました。
しかし**『そもそも関数とは何なのか』『メソッドとは何なのか』**について
初心者向けに平易な言葉や例を使って説明されたサイトは見つけられませんでした。

結果、僕は『関数』『メソッド』についてしっかりと理解しきることができませんでした。
(自分の理解力・読解力が無いことも原因だと思いますが...)

その後、自分はある人から
**イラストと具体例を使った『関数』『メソッド』についての説明**を受け、
一気に意味を理解し、腹落ちさせることができました。

その時に受けた説明がひたすら分かりやすく神だったので、
ここで記事化しました。

プログラミング初学者にとって、少しでも為になっていたら幸いです！