このページではプログラミング初心者の方向けに、関数とは何か?を分かりやすく3分で解説します。
参考 プログラミングとは?
関数は一言でいうと「毎回決まった動作をしてくれるプログラムの部品」です。
関数の仕組みをプログラミング初心者でも理解できるよう図解していきつつ、読み終える頃には関数の使い方やメリットをきちんと理解できるように説明していきます。
どのプログラミング言語でも共通する理解必須の超・基本知識です。是非最後までご覧ください。
関数とは?一言で
関数(英:function)は、毎回決まった動作をしてくれるプログラムの部品です。ちょっと砕けた言い方をすると、「これをやっておいて」と言えば何度でも指示通りに動いてくれる便利なやつです。
簡単な例として「足し算関数」を見てみましょう。
この関数は「足し算」をしてくれるプログラムの部品(=関数)です。1と2を入れると3を返してくれます。1と2を渡すから、これの足し算をしておいて!と指示しているようなイメージ。
そして、また足し算をしなければならない場面が出てきたら、またその関数を呼びます。
今度は3と9を渡したので、関数は12を返してきます。このように、毎回決まった動作をしてくれるプログラムの部品のことを「関数」と呼びます。
今回の例では「足し算をする」という簡単な例で説明しましたが、実際には「〇〇を画面に表示する」とか「西暦から和暦に変換する」など、関数の作り方次第で利用シーンは無限大。毎回同じ処理をコーディングする必要がないので、開発効率も上がり、非常に便利な仕組みです。
関数のメリットをしっかりと理解することで、使いどころが分かる一人前のプログラマーになれます。
次の章では、関数を利用するメリットを解説します。
プログラミングで関数を利用するメリット
プログラミングの世界では、プログラムの最初や最後、もしくは途中に何度か同じ処理を行うような場面が出てきます。そのような場合にあらかじめ部品として関数を作っておいて、あとから何度も再利用したりすることができます。これが、まず関数の大きなメリットです。
そして、さらに関数を利用することで以下のようなGoodなポイントが生まれます。
一つひとつ、具体例を挙げながら解説します。
関数のメリット1:コーディングミスを防げる
同じ処理を何度も記述する必要がないので、コーディングミスを最小限にすることができます。
def add_func(a,b): # 関数「add_func」 引数⇒a/b return a + b - 3.14 + a * 3 X = add_func(2,9) # 関数の実行1 Y = add_func(1,2) # 関数の実行2 Z = add_func(3,7) # 関数の実行3
もし↑のサンプルコードと同じような処理を関数なしで記述した場合はこうなります。
X = 2 + 9 - 3.14 + 2 * 3 # 計算実行1 Y = 1 + 2 - 3.14 + 1 * 3 # 計算実行2 Z = 3 + 7 - 3.14 + 7 * 3 # 計算実行3
ご覧のように、毎回同じ計算式をコーディングする必要が出ます。その分、確実にコーディングミスの確率もあがるため、おすすめできる書き方ではありません。
ちなみに、関数を利用しない例のコードには1か所ミスが含まれています。どこにミスがあるかお気づきですか?
関数のメリット2:コード全体が見やすくなる
関数を利用することでコード全体が見やすくなります。
コードが読みやすくなるということは、後からバグの調査をする場合や機能追加する際に負担が減るというメリットがあります。
######関数定義###### def add_func(a,b): # 関数「add_func」 引数⇒a/b return a + b def div_func(c,d): # 関数「div_func」 引数⇒c/d return c / d #################### X = add_func(2,9) # 足し算1 Y = add_func(1,2) # 足し算2 Z = add_func(6,3) # 割り算1 print(X) # 11 print(Y) # 3 print(Z) # 9
他人数での開発が可能になる
関数(英:function)は、毎回決まった動作をしてくれるプログラムの部品です。ちょっと砕けた言い方をすると、「これをやっておいて」と言えば何度でも指示通りに動いてくれる便利なやつです。
関数はあくまでもプログラムの部品です。したがって、部品だけ他の人に作ってもらう、というようなことも可能です。
AとB、二つの値を渡すので、この2つの値を加算する関数を作ってね!ということができるということです。
実は関数のメリットはここが一番大きかったりします。近年のプログラムは多機能化かつ複雑化しているので、それぞれの得意分野に沿って関数を作成してもられば開発効率がぐんと上がります。
以下の記事ではPython・JavaScript・ABAPの関数解説記事です。
より具体的に関数のイメージを掴みたい!という方は是非合わせてご覧ください。
ITを1から学びなおしたい方は
システムエンジニアを目指す方や、IT知識を1から身につけたい方は以下のページをご覧ください。
正直どこから学び始めればよいかわからない。どのように勉強していけば、エンジニアとしてのスキルが磨けるか?が分からない・・・という方は必見です。
システムエンジニア向けに「できるエンジニア」になる方法を1から解説しておりますので、是非ご覧ください。
#無料で読めるようにしてあります。累計12万人が参考にしていただきました!