引数を配列にして値を受け取る 配列の集計 - メソッド - 萌えJava超入門
第十二章 クラスメソッド

引数を配列にして値を受け取る

配列は参照型の変数です。
初期化した配列を引数に与えるとメソッドの外から参照できます。


引数を配列にして値を受け取る


Sample07_111の説明
1つ目の引数に集計したい配列を渡します。
2つ目の配列 resultArrに「合計・最大・最小・平均」の4つの値を要素として受け取ります。
3つ目の配列 rankArrに評価の値を char[]で受け取ります。

//Sample07_111.java
class Sample07_111 {

  /*クラスメソッドの定義*/
static void calc02(int[] array, double[] resultArr,char[] rankArr){
  double sum = 0;
  double max = 0;
  double min = 100;
  double avg = 0;

  for(double dou : array){
      sum += dou;
      max = max < dou ? dou : max;
      min = min < dou ? min : dou;
  }
  avg = sum / array.length;

  resultArr[0] = sum;
  resultArr[1] = max;
  resultArr[2] = min;
  resultArr[3] = avg;

  if(sum>320){
      rankArr[0] = 'A';
  }else if(sum>240){
      rankArr[0] = 'B';
  }else{
      rankArr[0] = 'C';
  }

}
public static void main(String[] args){

  int[] values = {
      80,74,91,70,44,68,92,76,88,57
  };

  double[] result = new double[4];//メモリアドレスを保存
  char[] rank = new char[1];//メモリアドレスを保存

  /*クラスメソッドの呼び出し*/
  calc02(values, result, rank);
System.out.println("合計: " + result[0]); System.out.println("最大: " + result[1]); System.out.println("最小: " + result[2]); System.out.println("平均: " + result[3]); System.out.println("評価: " + rank[0]); }
}

コマンドライン
>javac Sample07_111.java
>java Sample07_111
合計: 740.0
最大: 92.0
最小: 44.0
平均: 74.0
評価: A

この方法のメリットは値を受け取るクラス型(参照型)変数を、複数利用できる点にあります。
データ型の違う配列の変数を引数として与えられる訳です。
一つの変数で足りる場合は戻り値を利用した方がわかりやすいでしょう。


ポイントは 引数に与える配列を
事前に初期化している
点だ。
配列インスタンスを
calc02メソッドの内外の変数で
共有しているわけだ。

ムズいっス。
これ覚えないとダメ?




あ...いや、
あまり初心者向けとは言えないかな。
こんな方法がある事だけ覚えておこう。



この方法を使ったメソッドが出てくるのはもう少し先でしょうか。

お疲れ様でした。




© 2019 awasekagami