未来エンジニア養成所Blog

月単価180万以上のプログラミング講師がプログラミングを皆に楽しんでもらうための情報をお届けします。

【Java】基本構文に関する問題1-15

title


問題1-15

次の指示に従ってArrayBasicPracticeクラスのmainメソッドを完成させてください。

  1. int配列型変数arrを宣言してください。
  2. 要素数が3つのint配列型オブジェクトを生成してください。
  3. 各要素にそれぞれ25、39、43を代入してください。
  4. 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公式アカウント

仕事が辛くてたまらない人生が、仕事が楽しくてたまらない人生に変わります。
【登録いただいた人全員に、無料キャリア相談プレゼント中!】


LineOfficial

友だち追加



【まついのLINE公式アカウントはこちらから!】
Line公式アカウント