こどもプログラミング教室・オンライン講座/プログラミングアカデミー

こどもプログラミング教室・オンライン講座/プログラミングアカデミー

橿原市 JavaScriptプログラミング 関数について

プログラミングにおける関数とは

学校で学ぶ関数とは、複数の数字の関係性について式に表したものを指します。たとえばy=ax+b(a,bはそれぞれ定数)といった式が与えられている場合、xの数字を一つ与えることで決められた数yを求めることが出来ます。このように何か数字を与えることで決められた何かを返すような式のことを関数と呼びます。これはプログラムの世界でも変わりません。予め自分で必要な要素を定め(先ほどの例で言うとxの部分になります)、それに対してどのような処理を行い(先ほどの例でいうとaを掛けたりbを足したりしている部分になります)、どのような値を返すのか(先ほどの例で言うとyの部分になります。)を記述します。こうすることで同じ処理を何度も繰り返す際に記述量を大幅に減らせたり、やることは毎回同じだけど数字が違うような処理を行う際に毎度書き直す手間を省くことが出来ます。プログラミングを効率良く行うためには関数の考え方をしっかりと把握し、活用していく必要があります。

関数を使うことのメリットについて

先ほどもさらっと記述しましたがプログラミングを行っていく上で関数を用いるメリットは大きく2つあります。1つ目はコードの再利用です。プログラムの中には同じ動きを何度も行う場合があります。その際に毎回同じコードを記述していると手間ですし見た目にも分かりにくくなってしまいます。そんな時にその部分を関数として記述することで大幅に記述量を減らすことが出来ます。また、ミスが見つかった際にも関数を記述した部分を直すだけで済みますのでメンテナンス性も高まります。微調整を行ったり、処理を増やしたりする際も同様に関数部分を直すだけになります。2つ目の理由として、他者との共有が容易になることです。たとえば自分で思いついた複雑な処理を他者に使ってもらう場合、記述されたコードそれぞれを理解し、調整方法等について説明しなければなりません。関数にしておくことで与える要素の意味のみ説明しておけば後はコピペで済みます。これらの理由から関数は重宝されているのです。

関数の記述方法

関数の記述方法についてですが、勿論各言語毎に違います。しかし、大まかな形や考え方は同じなのでその部分について解説します。まず、関数を記述するには関数名を定義します。行う処理をそのまま名前にすることが多いです。無名関数を定義するパターンもありますが少しややこしいのでここでは割愛します。次に与える要素の数を決めます。1つだけのパターンもありますし複数個の要素を与える関数も作ることが出来ます。ここでは要素に名前を与えますがこれはあくまでその関数内での仮名になります。実際の変数名とは関係ないので注意しましょう。分かりやすくする工夫として実際の変数名と同じにすることも多いです。その後、実際の処理を記述していきます。与えられた要素に対して何かしらの処理を行い、最終的に返すものを記述します。返すものは一つですが、その途中で行う処理に制限は有りません。また与えられたものとは関係のない処理をさせることも可能です。

関数の実行方法

関数は宣言し、記述しただけでは仕事をしません。実際に必要な要素を与えてあげることで初めて実行されます。実行方法も言語によってさまざまですが基本的には関数名を記述し、そのあとに与える要素を記述する形になります。この実行が無いとどれだけ素晴らしい関数を作成したとしても意味はありません。また、実際実行している部分と関数の中身を設定している部分は繋がっている必要は有りません。なので基本的に関数の宣言はソースの初めの方でまとめてしておき、必要な箇所で関数を呼び出していくことが多いです。こうすることで関数の宣言等の実際に動作していない部分を区分けることが出来ます。また、関数の中にその関数を実行するように記述することもできます。この場合、特に対策していなければ一瞬で無限ループを起こし、最悪クラッシュの危険性があります。しかし関数の実行を遅らせる処理を挟むことで安全に無限ループを起こしたり、関数を実行する回数に制限をつける事で繰り返す数を決めたり、関数を実行しなくする条件を付けることで途中で終わらせたり等、便利な使い方もあります。

自分が使う関数

上記までで関数のメリットや記述、実行方法等について解説してきました。ここでは私がよく使う関数について、簡単に述べていきたいと思います。ソースコードを直接は書かないのでこの説明を読んで、自分ならどう実現するかを考えてみてください。連続した数をランダムに並び替え、それぞれを配列に収納する関数です。必要な要素はどれだけの数が欲しいか、の1つだけです。その要素を与える事で0からスタートする要素の数だけ連続した数を用意し、それをランダムに並び替えた配列を作成する、と言った処理を行います。この関数は複数個の、被りの無いランダムな数を使用する際に用います。処理としてはまず与えられた要素の数分だけ連続した整数を配列に数字を格納していきます。その後、配列の中身をシャッフルする、と言う流れですがこの部分が少しややこしいです。私の場合は配列の最後の部分を、その手前までのランダムな箇所の要素と入れ替える、という処理を最初の部分まで順番に行っていくことでシャッフルを行っています。ただ、これはあくまで私の方法なのでぜひ皆様のご自身のやり方を見つけてみてください。

« 前のページに戻る

連絡窓口

プログラミングアカデミー;
〒634-0006 奈良県橿原市新賀町232
橋本第2ビル2階
TEL:0744-29-1043
E-mail: info@online.programming-academy.jp

公式チャンネル

ロボットの動画を上げています!!ぜひ見てね!!