引数リスト

関数で処理を行うのに必要なデータを、関数を呼び出す側からもらうためには、引数を指定します。その引数を「仮引数」と呼びます。仮引数は実際のデータがあるのではなく、あると仮定して処理を記述することができます。

一方、関数を呼び出す側は仮引数が定義されている場合、仮引数に応じたデータを渡す必要があります。そのデータを「実引数」と呼びます。実引数は処理してもらいたい実際のデータを指定します。

関数を定義するときには引数を指定しないか、指定するかを決めることができます。指定する場合、複数指定することができます。複数指定するときはカンマで区切って指定します。

仮引数リストの書式
データ型 変数名
データ型 変数名, データ型 変数名,

これから、引数を指定するいくつかのパターンを見てみましょう。

■ 仮引数を指定しない

関数を定義するときに、関数を呼び出す側からデータをもらう必要のない場合は、仮引数リストは指定しません。

○ ファイル

次のようにファイルを作成してください。

ファイル名 ArgumentTest1.java

サンプルダウンロード

○ プログラム

次のようにプログラムを入力してください。

ArgumentTest1.java

  1. import java.io.*;
  2. class ArgumentTest1{
  3.     //入力したデータを表示する関数
  4.     public static void showData() throws Exception{
  5.         //データを入力する準備をする
  6.         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  7.         //データを入力する
  8.         System.out.print("表示したいデータを入力してください:");
  9.         String inputdata = br.readLine();
  10.         //入力したデータを表示する
  11.         System.out.println("入力したデータは「" + inputdata + "」です。");
  12.     }
  13.     public static void main(String[] args) throws Exception{
  14.         //関数の呼び出し
  15.         showData();
  16.     }
  17. }

○ コンパイルと実行

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

  1. import java.io.*;
  2. class ArgumentTest2{
  3.     //指定されたデータを表示する関数
  4.     public static void showData(String data){
  5.         //指定したデータを表示する
  6.         System.out.println("指定されたデータは「" + data + "」です。");
  7.     }
  8.     public static void main(String[] args) throws Exception{
  9.         //データを入力する準備をする
  10.         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  11.         //データを入力する
  12.         System.out.print("表示したいデータを入力してください:");
  13.         String inputdata = br.readLine();
  14.         //関数の呼び出し
  15.         showData(inputdata);
  16.     }
  17. }

○ コンパイルと実行

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

  1. import java.io.*;
  2. class ArgumentTest3{
  3.     //指定されたデータを表示する関数
  4.     public static void showData(String data, int count){
  5.         //指定した回数ループする
  6.         for(int i=0; i<count; i++){
  7.             //指定したデータを表示する
  8.             System.out.println("指定されたデータは「" + data + "」です。");
  9.         }
  10.     }
  11.     public static void main(String[] args) throws Exception{
  12.         //データを入力する準備をする
  13.         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  14.         //データを入力する
  15.         System.out.print("表示したいデータを入力してください:");
  16.         String inputdata = br.readLine();
  17.         //回数を入力する
  18.         System.out.print("表示したい回数を入力してください:");
  19.         int countdata = Integer.parseInt(br.readLine());
  20.         //関数の呼び出し
  21.         showData(inputdata, countdata);
  22.     }
  23. }

○ コンパイルと実行

C:¥work>javac ArgumentTest3.java
C:¥work>java ArgumentTest3
表示したいデータを入力してください:ばなな
表示したい回数を入力してください:5
指定されたデータは「ばなな」です。
指定されたデータは「ばなな」です。
指定されたデータは「ばなな」です。
指定されたデータは「ばなな」です。
指定されたデータは「ばなな」です。

C:¥work>

○ フローチャート

引数フローチャート

○ 解説

5~11行目では、関数を定義しています。この関数は仮引数を二つ用意しています。文字列と整数値を受け取ります。7行目から受け取った整数値分だけ繰り返して、受け取った文字列を表示します。

13~27行目では、main関数を定義しています。今回はmain関数で表示したい文字列と、繰り返したい回数を入力しています。showData関数を呼び出す時に表示したいデータと、表示する回数を渡しています。この二つを渡さないとエラーになります。

前へ   次へ