はじめに
プログラミング言語には、「いくつかの関係のあるデータをグループにして、まとめて1つの変数として扱う」 仕組みが用意されており、以下のようなその変数が保持する特定の値や値全体に対して行える機能を持ち合わせています。
- 取り出し
- 書き換え
- 削除
これらの機能をプログラミング上の呼び方として、「配列操作」と呼びます。
バラバラではなく、ひとまとめにすることで非常に扱いやすくなります。
配列のイメージはこんな感じです。
形式張ったものではなく、 現実世界のモノに例えると、、、
- 下駄箱(靴を複数扱う)
- キャビネット (資料などを複数扱う) や本棚 (文庫本や漫画、 参考書などを扱う)
- カレンダー(年、月単位で日付を扱う)
などでしょうか。
上記のモノを表す内容として共通しているのが、1つを表すために「複数」を扱う点です。先程よりはイメージが湧いてきたのではないかと思います。
それではさっそく作り方を見ていきましょう!
前回の復習
前回は、 データ型・文字列クラスについて学びましたね。 書き方は、「型 + 変数名=値」
変数の定義: 整数型の変数の場合
変数の定義: 文字列クラスの変数の場合
いずれも、「変数名の命名規則は自由」 でしたね!今後の内容を学んでいくための基本になります!
忘れてしまった場合は、復習しておきましょう!
Step1: 配列の作り方
配列を作るためには、 次の2ステップが必要です。
STEP1: 配列の宣言
STEP2: 要素代入
STEP1 配列の宣言
要素の型D = 配列変数名
int[ ] arr;
↑ここでint型の要素を代入できる配列変数arrを用意する
STEP2 要素の代入
配列変数名 = new 要素の型 [要素数]
arr = new int[5];
↑ここでint型の要素を5個作成してarrに代入し、 配列arrの完成。
STEP1とSTEP2を合わせて
↑コレが一連の流れになります!!
ポイント
しかし実は、上記のSTEP1とSTEP2は同時に行うことが可能です!!
↑同時に行うと、 コードが1行でまとまってスッキリするので極力こちらを使用するようにしましょう。
豆知識
今回はサンプルで arrという命名にしていますが、 「配列」という日本語を英語にした場合、 array という言葉となるためです。 プログラミング言語は数多くありますが、 多くの言語で、「〇〇array」や「 array〇〇」「〇〇ar」、「arr〇〇」 などと表記したりします!
「〇〇」部分には、型やクラスを指定しておくことで、定義する配列がどの型のものであるかが明確になります。
セットで覚えておきましょう!
Step2: 初期化
変数の値を取り出すには、必ず値を代入して初期化しなければなりません。初期化をしていない変数を利用すると、エラーが発生します。
【初期化の方法】
上記の形で初期化することができますが、 一行ずつ記述するのが面倒だと思うかもしれません。しかし、あらかじめ要素の数が決まっている場合は、 配列の宣言と初期化を同時に行うことができます!
【宣言と初期化を同時に行う】
これでだいぶスッキリしましたね!! 今宣言した配列のイメージはこんな感じです。
- length
Javaの配列には、その配列の要素数を調べることができる length というフィールド (情報) があります。
length を使用することにより、 プログラマが配列の要素数を別の変数に保持するなどの 管理をする必要がなくなるため、 配列がとても利用しやすくなります。 - length 値の参照方法
配列の変数に対して 「配列変数.length」のように「 (ドット)」で繋いで記述します。
実行結果
また、配列の各要素を参照したり更新したりするには、配列名の直後に[ ] をつけ、 添え字(インデックス) と呼ばれる数字を指定して要素を特定します。
添え字は0から順番に数えます。 配列の先頭は1ではなく0であることに注意しましょう。
【添字の指定】
実行結果
【添字の指定: 全要素】
実行結果
補足
配列値操作時の説明
値操作に関しては難しくはありませんが、 「文字や言葉として説明する際」 には注意する必要があります。
- n番目の要素値
- 添え字(インデックス) がnの要素値
【サンプル】
上記コードを説明 (コメント) する場合は、、、
といったように表現します。日本語の問題ですが、「0番目」という表現が気持ち悪いのはなんとなくわかる気がしますよね?配列操作のように値の位置 (住所みたいな)を表現する場合は、「〇〇がDの~~~」 といったようにするとよいでしょう。
例
10人が受けたテストの合計点を求めるプログラムを書きます。
【実行結果】
課題
提出ファイル
- Task1_4.java
- Task1_4.class(Task1_4.classファイルがない方はTask1_4.javaファイルのみ提出してください。)
java_curriculum/1-4/Task1_4.java に課題があります。
以下の添付画像のようにコンソールへ出力されるよう課題を実施し提出してください。
提出方法については、導入研修で実施した、研修課題提出方法の通りにお願いします。
