練習問題 解答
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); } }