練習問題 解答

9.11 練習問題 解答

問1

① ×:配列変数が扱える型は1つのみです。
② ○
③ ○:配列変数名[インデックス]で代入した値を扱う事ができます。
④ ×:配列変数名[変数名]で代入した値を扱えます。
⑤ ○

問2

① int[] data;
② String[] data;
③ double[] data;
④ boolean[] data;
⑤ char[] data;
⑥ int[] data = new int[10];
⑦ String[] data = new String[5];
⑧ double[] data = new double[8];
⑨ boolean[] data = new boolean[2];
⑩ char[] data = new char[7];
⑪ int[] data = {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10};
⑫ String[] data = {“東京” , “千葉” , “神奈川”};
⑬ double[] data = {0.25 , 0.5 , 0.75 , 0.9};
⑭ boolean[] data = {true , false};
⑮ char[] data = {‘A’ , ‘B’ , ‘C’ , ‘D’ , ‘E’ , ‘F’};

問3

① 5:最大インデックスは「要素数-1」になります。
② 6:6個データが格納されるので要素数は6個になります。
③ 75:data[1]は2つ目の数値になるので75となります。
④ data[5] または data[data.length-1]
⑤ 実行時エラーになる。

問4

① []:配列宣言は型の後ろに括弧をつけます。
② 75:結果画面より2つ目に出力されている数値75が該当します。
③ 46:結果画面より4つ目に出力されている数値46が該当します。
④ length:配列の要素数を利用するには配列名.lengthを設定します。
⑤ i:iは0~4までのカウンタ変数になります。これを利用すれば配列の値を各参照できます。

問5

➢ Practice0901.java

package jp.co.f1.intro.ch9exercise;
public class Practice0901 {
	public static void main(String[] args) {
		int []  score = {32 ,  75  , 85 ,  46  , 50};

		for(int i = 0 ; i < score. length ; i++){
			System.out.println("score[" +  i  + "] = " + score[ i ]);
		}
	}
}

➢ Practice0902.java

package jp.co.f1.intro.ch9exercise;

public class Practice0902 {
	public static void main(String[] args) {
		int[] score = {32,75,85,46,50};

		for(int i=score.length-1;i>=0;i--){
			System.out.println("score[" + i + "] = " + score[i]);
		}
	}
}

解説

 for文の式1の初期値を「score.length-1」と設定することで初期値は「4」になります。
 for文の式2の条件式を「i>=0」とする事で、カウンタ変数iが0になるまで繰り返すループ処理になります。
 for文の式3の処理を「i–」とデクリメントする事でループ回数が増える毎にiの値を減らす仕組みになります。
 結果1回目「i=4」、2回目「i=3」、3回目「i=2」、4回目「i=1」、5回目「i=0」とカウントダウンするループ処理を実現する事ができます。

問6

➢ Practice0903.java

package jp.co.f1.intro.ch9;
import java.util.Scanner;

public class Practice0903 {
	public static void main(String[] args) {
		Scanner sin = new Scanner(System.in);

		int sum = 0;
		double ave = 0.0;
		int[] score = new int[5];

		for(int i=0;i<score.length;i++){
			System.out.print((i+1)+"番目の数値を入力-->");
			score[i] = sin.nextInt();
		}

		for(int i=0;i<score.length;i++){
			sum += score[i];
		}

		ave = (double)sum / score.length;

		System.out.println("**********************");
		System.out.println("合計 = " + sum);
		System.out.println("平均 = " + ave);
	}
}

NEXT>> 第10章 10 メソッド