引数
サブルーチンを使うと、このように処理に名前を付けて分割していくことができるわけですが、ただ分割して呼び出すだけでは全く同じ処理しかできません。それぞれの呼び出しで微妙に違うことをやりたい場合、サブルーチンに情報(データ)を与えてやることが必要になります。
つまり、人でたとえると今まではただ「仕事をやっといてね」と仕事を頼んでいたのが、「この資料を与えるから仕事をやっといてね」というようになるわけです。同じ仕事をするのでも、資料が違うから結果的に違うことが出来るわけです。例えば、3倍にして表示する、という処理でも何を三倍にするか、という情報が違えば違う処理になります。
サブルーチンにデータを渡すことを「引数」を渡す、という言い方をします。「引数」は「ひきすう」と読み、英語では「パラメータ」といいます。
引数を渡す方法は簡単です。まず、呼び出す側がサブルーチンに引数を渡す方法ですが、これは関数を呼び出すときの括弧内にデータを書きます。たとえば、testという関数に 10 という引数を渡したかったら、
test(10);
と書けばいいわけです。そうすると、testというサブルーチンに10という引数(データ)が渡されます。このように10というデータを直接渡してもかまいませんし、変数にしてもかまいません。
number = 10;
test(number);
この例では変数numberに10という値を入れ、testに渡しています。
今度は、その引数のデータをtest関数内で受け取る方法ですが、関数名の後の()の中で受け取る変数名を書きます。たとえば、
function test(data) { alert(data); }
のような感じです。引数として渡されたデータはサブルーチン名の後の( )内に書かれた変数、つまりdataに渡されるわけです。( )内に変数dataを宣言していることになり、その変数はtestの中で普通に変数として使用することができます。
まとめると、
test(10); function test(data) { alert(data); }
となります。このとき、testサブルーチンのdataには10が入りますので、画面には「10」と表示されます。
引数を二つ渡すことも出来ます。この場合、渡す側ももらう側もカンマ(,)で区切って引数を書きます。引数は三個以上でも渡すことが出来ます。
test(10,20); function test(data1,data2) { alert(data1); alert(data2); }
☆関数の書き方2 引数を使う 呼び出し方: 関数名(引数,引数,・・・) 呼び出される関数の書きかた: function 関数名(引数,引数・・) { 処理 }
問題10-3:
引数を数値で渡し、その引数を2倍して表示する関数を作成してみよう。