引数リスト
関数で処理を行うのに必要なデータを、関数を呼び出す側からもらうためには、引数を指定します。その引数を「仮引数」と呼びます。仮引数は実際のデータがあるのではなく、あると仮定して処理を記述することができます。
一方、関数を呼び出す側は仮引数が定義されている場合、仮引数に応じたデータを渡す必要があります。そのデータを「実引数」と呼びます。実引数は処理してもらいたい実際のデータを指定します。
関数を定義するときには引数を指定しないか、指定するかを決めることができます。指定する場合、複数指定することができます。複数指定するときはカンマで区切って指定します。
仮引数リストの書式 |
---|
データ型 変数名 データ型 変数名, データ型 変数名, … |
これから、引数を指定するいくつかのパターンを見てみましょう。
■ 仮引数を指定しない
関数を定義するときに、関数を呼び出す側からデータをもらう必要のない場合は、仮引数リストは指定しません。
○ ファイル
次のようにファイルを作成してください。
ファイル名 | ArgumentTest1.java |
---|
○ プログラム
次のようにプログラムを入力してください。
ArgumentTest1.java
- import java.io.*;
- class ArgumentTest1{
- //入力したデータを表示する関数
- public static void showData() throws Exception{
- //データを入力する準備をする
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- //データを入力する
- System.out.print("表示したいデータを入力してください:");
- String inputdata = br.readLine();
- //入力したデータを表示する
- System.out.println("入力したデータは「" + inputdata + "」です。");
- }
- public static void main(String[] args) throws Exception{
- //関数の呼び出し
- showData();
- }
- }
○ コンパイルと実行
C:¥work>javac ArgumentTest1.java
C:¥work>java ArgumentTest1
表示したいデータを入力してください:りんご
入力したデータは「りんご」です。
C:¥work>
○ フローチャート
○ 解説
5~15行目では、関数を定義しています。この関数は呼び出されると、キーボードからデータの入力をして、入力したデータを表示します。5行目の関数の定義で「public static」というキーワードがついていますが、詳しくは別に説明します。
17~20行目では、main関数を定義しています。Javaでは実行時にこの関数を呼び出します。そのため、main関数内に記述されている処理が順番に実行されます。
19行目では、showData関数を呼び出しています。showData関数は仮引数が指定されていないので、呼び出す側でも実引数を指定しません。指定するとエラーになります。
■ 仮引数を1つ指定する
関数の定義で1つ仮引数を指定する方法と、それを呼び出す方法を確認しましょう。
○ ファイル
次のようにファイルを作成してください。
ファイル名 | ArgumentTest2.java |
---|
○ プログラム
次のようにプログラムを入力してください。
ArgumentTest2.java
- import java.io.*;
- class ArgumentTest2{
- //指定されたデータを表示する関数
- public static void showData(String data){
- //指定したデータを表示する
- System.out.println("指定されたデータは「" + data + "」です。");
- }
- public static void main(String[] args) throws Exception{
- //データを入力する準備をする
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- //データを入力する
- System.out.print("表示したいデータを入力してください:");
- String inputdata = br.readLine();
- //関数の呼び出し
- showData(inputdata);
- }
- }
○ コンパイルと実行
C:¥work>javac ArgumentTest2.java
C:¥work>java ArgumentTest2
表示したいデータを入力してください:みかん
指定されたデータは「みかん」です。
C:¥work>
○ フローチャート
○ 解説
5~8行目では、関数を定義しています。この関数は仮引数を一つ用意しています。文字列型の変数が宣言されているので、文字列を受け取る前提で処理が行われます。7行目で渡された文字列を表示しています。
10~20行目では、main関数を定義しています。「ArgumentTest1.java」と比べると、今回はmain関数でキーボード入力をしています。19行目では、showData関数を呼び出していますが、その時にキーボードから入力したデータを実引数に指定しています。文字列を実引数に指定しないとエラーになります。
■ 仮引数を複数指定する
関数の定義で複数仮引数を指定する方法と、それを呼び出す方法を確認しましょう。今回は2つの引数を扱います。
○ ファイル
「IfTest2.java」をコピーして、次のようにファイル名を変更してください。
ファイル名 | ArgumentTest3.java |
---|
○ プログラム
次のようにプログラムを入力してください。
ArgumentTest3.java
- import java.io.*;
- class ArgumentTest3{
- //指定されたデータを表示する関数
- public static void showData(String data, int count){
- //指定した回数ループする
- for(int i=0; i<count; i++){
- //指定したデータを表示する
- System.out.println("指定されたデータは「" + data + "」です。");
- }
- }
- public static void main(String[] args) throws Exception{
- //データを入力する準備をする
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- //データを入力する
- System.out.print("表示したいデータを入力してください:");
- String inputdata = br.readLine();
- //回数を入力する
- System.out.print("表示したい回数を入力してください:");
- int countdata = Integer.parseInt(br.readLine());
- //関数の呼び出し
- showData(inputdata, countdata);
- }
- }
○ コンパイルと実行
C:¥work>javac ArgumentTest3.java
C:¥work>java ArgumentTest3
表示したいデータを入力してください:ばなな
表示したい回数を入力してください:5
指定されたデータは「ばなな」です。
指定されたデータは「ばなな」です。
指定されたデータは「ばなな」です。
指定されたデータは「ばなな」です。
指定されたデータは「ばなな」です。
C:¥work>
○ フローチャート
○ 解説
5~11行目では、関数を定義しています。この関数は仮引数を二つ用意しています。文字列と整数値を受け取ります。7行目から受け取った整数値分だけ繰り返して、受け取った文字列を表示します。
13~27行目では、main関数を定義しています。今回はmain関数で表示したい文字列と、繰り返したい回数を入力しています。showData関数を呼び出す時に表示したいデータと、表示する回数を渡しています。この二つを渡さないとエラーになります。