解説
プログラムも行数が多くなってくると、同じような処理が何度も登場したり、長くなり過ぎて非常に読みづらくなったりしてきます。
そういった場合に、同じような処理を1か所にまとめたり、適切な長さごとに処理を分割したりしたいという欲求が湧いてきます。
そのような時に利用される、プログラミング手法の1つが「関数」と呼ばれるものです。関数を使うと、プログラムの処理を、いくつかの部品に分割することができます。
機械を作る際には、部品を組み合わせて機械を作ります。同じようにプログラムを作る際に、関数という部品を組み合わせて、プログラムを作ることができます。
関数は、3つの要素でできています。入力する値である「引数(ひきすう)」、関数内で行う「内部処理」、出力する値の「戻り値(もどりち)」です。
┃
┏━┻━┓
┃引 数┃
┗━┳━┛
↓
┏━━━━━┓
┃関数 { ┃
┃ 内部処理┃
┃} ┃
┗━━┳━━┛
↓
┏━━━┓
┃戻り値┃
┗━┳━┛
↓
プログラム中で関数が呼ばれると、設定した引数を元にして計算や処理を行い、戻り値を、呼び出し元に戻します。
a = 1; b = 【関数】(a); ↓ 関数の戻り値が、関数の場所に代入される ↓ b = 2;
たとえば上記のような関数があった場合、変数aの値を引数として関数を呼び出し、計算した結果が関数の場所に戻って来ます。
その結果、変数bに、関数の戻り値が設定されます。
また関数は、変数などと同じように計算式の中で使えるという特徴を持っています。
a = 1; b = 1 + 【関数】(a) + 3; ↓ 関数の戻り値が、関数の場所に代入される ↓ b = 1 + 2 + 3;
上記のような計算式では、関数の戻り値が式に代入されて、「2 + 【戻り値】 + 3」のような計算が行われます。
また関数は、引数を0~複数個設定することができます。戻り値も、必ず必要なわけではなく、戻り値なしの関数も作ることができます。
関数は、プログラミング言語によって作り方や書き方が大きく違います。また、プログラム中の、関数を書く場所などにもルールがあったりします。
詳しくは、それぞれのプログラミング言語の仕様を参考にしてください。
サンプル
関数を使った処理を、JavaScriptで簡単に書いてみます。
<html>
<head>
<title>「関数を使った処理」のサンプル</title>
</head>
<body>
<pre><script type="text/javascript">
// 関数1 数を倍にする関数
function double(no) { // noは引数
var resNo = no * 2;
return resNo; // 戻り値
}
// 関数2 数を足す関数
function plus(no1, no2) { // no1, no2は引数
var resNo = no1 + no2;
return resNo; // 戻り値
}
// 関数3 9を戻す関数
function nine() { // 引数はなし
var resNo = 9;
return resNo; // 戻り値
}
// 関数4 戻り値なしで、引数を表示する関数
function output(str) { // strは引数
document.writeln("引数は「" + str + "」");
// 戻り値はなし
}
// 関数を利用
var a = 100;
document.writeln(double(a));
var b = 999;
document.writeln(plus(a, b));
document.writeln(nine());
output(b);
</script></pre>
</body>
</html>
200 1099 9 引数は「999」
