練習問題 解答

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

1package jp.co.f1.intro.ch9exercise;
2public class Practice0901 {
3    public static void main(String[] args) {
4        int []  score = {32 ,  75  , 85 ,  46  , 50};
5 
6        for(int i = 0 ; i < score. length ; i++){
7            System.out.println("score[" +  i  + "] = " + score[ i ]);
8        }
9    }
10}

➢ Practice0902.java

1package jp.co.f1.intro.ch9exercise;
2 
3public class Practice0902 {
4    public static void main(String[] args) {
5        int[] score = {32,75,85,46,50};
6 
7        for(int i=score.length-1;i>=0;i--){
8            System.out.println("score[" + i + "] = " + score[i]);
9        }
10    }
11}

解説

 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

1package jp.co.f1.intro.ch9;
2import java.util.Scanner;
3 
4public class Practice0903 {
5    public static void main(String[] args) {
6        Scanner sin = new Scanner(System.in);
7 
8        int sum = 0;
9        double ave = 0.0;
10        int[] score = new int[5];
11 
12        for(int i=0;i<score.length;i++){
13            System.out.print((i+1)+"番目の数値を入力-->");
14            score[i] = sin.nextInt();
15        }
16 
17        for(int i=0;i<score.length;i++){
18            sum += score[i];
19        }
20 
21        ave = (double)sum / score.length;
22 
23        System.out.println("**********************");
24        System.out.println("合計 = " + sum);
25        System.out.println("平均 = " + ave);
26    }
27}

NEXT>> 第10章 10 メソッド

f