問題1-15
次の指示に従ってArrayBasicPracticeクラスのmainメソッドを完成させてください。
- int配列型変数arrを宣言してください。
- 要素数が3つのint配列型オブジェクトを生成してください。
- 各要素にそれぞれ25、39、43を代入してください。
- forループを使用して、各要素を出力してください。
(出力形式は実行結果を参照)
【実行結果】
1番目の値は25です 2番目の値は39です 3番目の値は43です
【ArrayBasicPractice.java】
public class ArrayBasicPractice { public static void main(String[] args) { // 1. int配列型変数の宣言 // 2. 配列オブジェクトの生成 // 3. 各要素の値を代入 // 4. 各要素の値を表示 } }
解答例
【ArrayBasicPractice.java】
public class ArrayBasicPractice { public static void main(String[] args) { // 1. int配列型変数の宣言 int[] arr; // 2. 配列オブジェクトの生成 arr = new int[3]; // 3. 各要素の値を代入 arr[0] = 25; arr[1] = 39; arr[2] = 43; // 4. 各要素の値を表示 for(int i = 0; i < arr.length; i++) { System.out.println((i + 1) + "番目の値は" + arr[i] + "です"); } } }
解説
配列という概念は、プログラミング言語にとって切っても切れない関係にあります。
Javaでは配列の他に、コレクションフレームワークというものがあって、それを使用する機会の方が多いのですが、それでも配列は重要な概念には違いありません。
しかっりマスターしておきましょう。
まず、「1.int配列型変数の宣言」からです。
Javaでは基本データ型やクラス型の後ろに[ ]を付与すれば、配列型という扱いになります。
次に、「2.配列オブジェクトの生成」ですが、newキーワードを使用して配列オブジェクトを生成します。
配列変数型の[ ]には数値は入りませんが、配列オブジェクト生成のnewキーワードの後ろの[ ] には要素数が入るのがポイントです。
次の「3.各要素の値を代入」ですが、配列変数に[ ]をつけ、インデックス番号を指定して代入していきます。
ポイントは、3つの要素を作ったのなら、インデックス番号は0から2までということです。
次のようなミスはよくある例です。
int[] arr = new int[3]; arr[3] = 100;
このプログラムでは、コンパイルは通りますが実行時に例外がスローされます。
(インデックス番号は0、1、2の3つが有効なため、インデックス番号3は誤りです)
また、「1.int配列型変数の宣言」と「2.配列オブジェクトの生成」と「3.各要素の値を代入」を、次のように1行にまとめて記述することもできますので、ぜひ覚えておきましょう。
int[] arr = {25, 39, 43};
最後に、「4.各要素の値を表示」ですが、ここではforループを用いて配列の各要素を走査しています。
配列とforループは非常に相性が良いので、この記述方法をしっかりマスターしましょう。
なお、配列をforループで走査するにはJDK5.0から導入された拡張for文を用いる方法もありますが、今回はインデックス番号を出力に利用しますので、通常のfor文の方が適しています。
以下の形は配列走査の王道なので、必ずマスターしておきましょう。
for(int i = 0; i < arr.length; i++) { System.out.println((i + 1) + "番目の値は" + arr[i] + "です"); }
くれぐれも、次のような記述をしてはいけません。
for(int i = 1; i <= 3; i++) { System.out.println(i + "番目の値は" + arr[i - 1] + "です"); }
配列を走査するときのfor文のループ変数はインデックス番号に合わせるべきです。
つまり、0始まりにするのが基本です。
また、for文で要素数の値を「3」と直接記述(マジックナンバーといいます)しています。
これは完全にNGです。
必ず配列オブジェクトが持つlength属性の値を使用するようにしてください。
参考図書
LINE公式アカウント
仕事が辛くてたまらない人生が、仕事が楽しくてたまらない人生に変わります。
【登録いただいた人全員に、無料キャリア相談プレゼント中!】