どうも、コウイチです。

今回は、プログラミングにおける「関数」の、「引数」について見ていきます。

関数とは?(復習)

初めに関数の復習をしておきましょう。

前回までは、「関数」や「戻り値」についての基本的な概念をお伝えしました。

まだ読んでいなかった方はこちら↓

プログラミングにおける「関数」とは?分かりやすく解説するよ!

プログラミングにおける「戻り値」とは?分かりやすく解説するよ!

関数とは、トンネルのようなイメージで考えるとわかりやすいですね。

 

 

ある関数というトンネルには、何かの処理のまとまりが入っていて、それらの処理が終わると、処理結果としてある値が返される。

つまり、関数とは、ある処理のまとまりに名前を付け、その関数の実行命令が来たら実行し、結果を返す仕組みのこと

でした。

 

結果が返されたら、その結果を「戻り値(返り値)」と言いましたね。

 

前回も書きましたが、戻り値は、ないこともあります。

やりたいことによっては、関数の中で何かの処理がなされた後、結果が必要ないこともあるのです。

 

結果を返すように設計された関数では、何か返す必要がありますが、結果がいらないような場合は、結果を返さない関数を設計することもあるわけです。

 

これはまあ、頭の片隅に入れておいてください。

「引数(パラメータ)」とは

今回の記事では、引数とは何か、について、見ていきます。

ここまでは、引数がない場合の関数の説明をしてきたんですね。

 

もう一度イメージ図を出しますが、

 

これを見て、どうすれば関数がもっと便利なものになるでしょうか。

カンの良い方なら気づいたかもしれません。

この図、結果が出ていくだけですよね。入ってくるものがないのです。

 

分かりやすく、例を出しましょう。

 

前回の記事で使った例を再度使いますと

関数Aの中で何かごにょごにょと処理が行われると、15という結果が返されるというものでした。

が、毎回15という固定の値が返されますよね?

 

「わざわざ関数Aとか作っても、あんま意味なくね?」という違和感はここにあると思います。

 

確かに、関数Aの中で膨大な量の計算処理とかを行っている場合は、それらの処理をまとめて関数として名前を付けることは、プログラムがすっきりしますし良いことです。

 

しかし、何かが物足りないのです。

 

15という結果が出ていくだけだからですね。

 

それでは、出ていくだけではなくて、ある結果を作るための材料となる、入ってくるものを加えたらどうなるでしょうか。

それが次の図です。

 

 

引数というものを関数Bに入れると、戻り値という結果が返ってくる。

 

これが、関数の本来の姿です。

この「入ってくるもの」を「引数」といいます。

「引数」を「いんすう」と読むと恥ずかしい
(´・ω・`)

「引数」って、なんて読みますか?

 

実は僕も昔、間違えてました。「引数」は、「ひきすう」と読みます。

読み方って、間違って慣れると修正が難しいですから、今のうちに修正しておきましょう^^;

 

一応、”いんすう” でも間違いではないらしい(?)が、”いんすう” と読む人には会ったことがないのでやめた方がよいでしょう笑

 

数学の因数は “いんすう” と読みますから、それと区別するためらしいですよ。

何かの数を倍にして返す関数B

それでは、これから新しく、関数Bを作ってみます。

入ってきた引数に対して何かの処理を行い、結果を戻り値として返す関数です。

何かの数を倍にして返す関数B

関数B{

1、引数として入ってきた数 × 2 を計算する。
2、計算した結果を返す。

}

 

さてこれで、

  • 1を入れたら2が出てくる。
  • 2を入れたら4が出てくる。
  • 100を入れたら200が出てくる。

そんな関数Bが出来上がりました。

 

 

関数って便利だと思いません?

 

自販機に100円入れてボタンを押したらオレンジジュースが出てくるみたいな感じで、オレンジジュースが飲みたい僕らは別に、自動販売機の内部構造がどうなっているかとか、知らなくても良いわけです。

 

英語を日本語に翻訳したいときは、翻訳をしてくれる関数さえあれば、英語を引数として渡すと、自動的に日本語に翻訳し、戻り値として翻訳結果を返してくれます。

英語を入れれば日本語が出てくる。英語が全く分からなくたって、関数の使い方さえ分かっていればいいわけです。

まとめ

引数と戻り値、この両方があってこそ、関数の威力を発揮していきます。

 

引数を使うと、関数をより再利用しやすくなるのもイメージできるかと思います。

 

関数という仕組みがなければ、同じような処理をいたるところに書いて、後からその処理を修正しなければならなくなった時にも、あちこちのプログラムを同じように修正することになります。

 

そうならないためにも、同じような処理は関数として一つ定義し、引数として渡す値を変えて色々なところから呼び出す(実行する)ことで、メンテナンス性の高いプログラムになることも、覚えておいてください。

 

ではまた。