
Java入門|lengthでコードを簡単にする
lengthを使えば、配列の数に合わせてコードが自然に動く
配列を使うと、同じ種類のデータをまとめて扱えるようになりますね。さらに便利に使うために、ぜひ覚えておきたいのが length です。
これまでの配列のプログラムでは、for文の中に 5 のような固定の数を書いて、繰り返し回数を決めることがありました。もちろんそれでも動きますが、配列の要素数が変わるたびに、その数字を書き直さなければならなくなります。こうした書き方は、あとで修正するときに意外と手間がかかります。
そこで役立つのが、配列の長さを表す length です。これを使えば、その配列が何個の要素を持っているのかをJavaが教えてくれるので、繰り返し回数を自動的に合わせられるようになります。ここでは、配列の長さの調べ方、length の使い方、そしてなぜ length を使うとコードが楽になるのかを、やさしく丁寧に見ていきましょう。
配列の長さとは何か
配列には、あらかじめ「何個の要素を持っているか」が決まっています。
この要素の数のことを、配列の長さといいます。
たとえば、次の配列を見てみましょう。
int[] data = {15, 28, 34, 21, 40};この配列には、5つの整数が入っています。
つまり、この配列の長さは 5 です。
この「5」という数をJavaで調べたいときに使うのが、length です。
配列の長さは .length で調べられる
Javaでは、配列変数のあとに .length を付けると、その配列が持っている要素数を表せます。
書き方はとてもシンプルです。
配列変数名.lengthたとえば、data という配列なら次のように書けます。
data.lengthこれで、data が持っている要素数を表せます。
先ほどの配列なら、data.length の値は 5 になります。
length を使った基本の例を見てみよう
まずは、配列の長さを表示するシンプルなプログラムから見てみましょう。
ここでは、5日分の読書時間を配列に入れて表示するプログラムを作成します。
ファイル名:Sample7.java
class Sample7
{
public static void main(String[] args)
{
int[] reading = {30, 45, 20, 50, 35}; // 5日分の読書時間を用意する
for(int i = 0; i < 5; i++){
System.out.println((i + 1) + "日目の読書時間は " +
reading[i] + "分です。");
}
System.out.println("読書記録は全部で " + reading.length +
"日分あります。"); // 配列の長さを表示する
}
}実行結果
1日目の読書時間は 30分です。
2日目の読書時間は 45分です。
3日目の読書時間は 20分です。
4日目の読書時間は 50分です。
5日目の読書時間は 35分です。
読書記録は全部で 5日分あります。このプログラムでは、最後の行で reading.length を使っています。
その結果、配列の中に要素がいくつあるのかを、そのまま表示できます。
.length は何を返しているのか
ここで、reading.length が何を表しているのかを整理してみましょう。
| 式 | 意味 |
|---|---|
| reading[0] | 1つ目の要素 |
| reading[1] | 2つ目の要素 |
| reading[2] | 3つ目の要素 |
| reading.length | 配列全体の要素数 |
つまり、reading[0] のような書き方は「中の値」を取り出すもので、reading.length は「配列の大きさ」を表すものです。
ここは少し似て見えるので、混同しないようにしたいところです。

この図では、配列の中に 5 個の箱があることを表しています。
それぞれの箱には 0 から 4 までの添字が付いていますが、配列全体として見たときの要素数は 5 です。
つまり、
- 最後の添字は 4
- 配列の長さは 5
という関係になります。
この違いはとても大切なので、しっかり意識しておきましょう。
これまでの for文では固定の数字を書いていた
これまでの学習では、for文の条件に 5 のような固定の数を書いていたことがありました。
for(int i = 0; i < 5; i++){
System.out.println(reading[i]);
}この書き方でも、要素数が 5 の配列なら正しく動きます。
ただし、この方法には少し困る点があります。
たとえば、あとでデータが5個から7個に増えたとします。すると、配列の中身だけではなく、for文の条件も書き直さなければなりません。
もし修正を忘れてしまうと、
- 一部の要素が表示されない
- 不自然なコードになる
- 修正漏れの原因になる
といった問題が起こりやすくなります。
length を使うと for文がもっと自然になる
そこで、for文の条件にも length を使うと便利です。
for(int i = 0; i < reading.length; i++){
System.out.println(reading[i]);
}この書き方なら、配列の要素数に合わせて繰り返し回数が自動的に決まります。
つまり、
- 要素が5個なら5回
- 要素が7個なら7回
- 要素が10個なら10回
というように、配列に合わせて自然に動いてくれるのです。
length を使った実用的な例を見てみよう
今度は、for文の条件に length を使った例を見てみましょう。
ここでは、1週間の水やり回数を記録するプログラムに変えて説明します。
ファイル名:Sample8.java
class Sample8
{
public static void main(String[] args)
{
int[] watering = {1, 2, 1, 3, 2};
for(int i = 0; i < watering.length; i++){ // 配列の長さを使って繰り返す
System.out.println((i + 1) + "日目の水やり回数は " +
watering[i] + "回です。");
}
System.out.println("記録の日数は " + watering.length +
"日です。");
}
}実行結果
1日目の水やり回数は 1回です。
2日目の水やり回数は 2回です。
3日目の水やり回数は 1回です。
4日目の水やり回数は 3回です。
5日目の水やり回数は 2回です。
記録の日数は 5日です。このプログラムでは、繰り返し条件にも、最後の表示にも length を使っています。
そのため、配列の中身が変わって要素数が増減しても、for文の条件をいちいち修正しなくて済みます。
たとえば要素数が変わってもそのまま使える
length の便利さは、配列の中身を変更したときによくわかります。
たとえば、次のように要素数を増やしたとします。
int[] watering = {1, 2, 1, 3, 2, 2, 1};このとき、for文が
for(int i = 0; i < watering.length; i++)となっていれば、何も書き直さなくても 7 回繰り返してくれます。
でも、もし
for(int i = 0; i < 5; i++)のままだと、7個の要素があるのに最初の5個しか処理されません。
この違いはかなり大きいですね。
つまり、length を使うことで、配列の変化に強いコードになるのです。
固定の数字を書く方法と length を使う方法の違い
2つの書き方を比べてみましょう。
| 書き方 | 特徴 |
|---|---|
| i < 5 | 要素数が変わると修正が必要 |
| i < 配列変数名.length | 要素数が変わってもそのまま使いやすい |
たとえば、次の2つを比べると違いがはっきりします。
固定の数字を書く方法
for(int i = 0; i < 5; i++){
System.out.println(watering[i]);
}length を使う方法
for(int i = 0; i < watering.length; i++){
System.out.println(watering[i]);
}後者のほうが、配列の実際の大きさにぴったり合っていて、より安全で読みやすい書き方です。
なぜ length を使うと修正が楽になるのか
プログラムでは、あとからデータの個数を変えたくなることがよくあります。
たとえば、
- 5人分のデータを 8人分に変える
- 1週間分を 1か月分に変える
- 3個の商品を 6個に増やす
といったことは珍しくありません。
このとき、コードのあちこちに 5 や 3 などの数字が直接書かれていると、どこを修正すればよいか探すのが大変になります。しかも、数字の意味が同じとは限らないので、見つけにくいこともあります。
一方で、配列の長さを表すところにすべて length を使っていれば、配列データそのものを変えるだけで、繰り返し回数も自動的に変わります。
これは、保守しやすいコードを書くうえでとても大切な考え方です。
length を使うときに意識したいポイント
length を使うときには、いくつか意識しておきたい点があります。
| ポイント | 内容 |
|---|---|
| length は要素数を表す | 最後の添字ではない |
| 最後の添字は length - 1 | 添字は 0 から始まるため |
| for文と相性がよい | 繰り返し回数を自動で合わせられる |
| 修正しやすくなる | 要素数が変わっても対応しやすい |
特に大切なのは、length は最後の添字ではなく、要素数そのものだという点です。
たとえば、要素数が 5 なら、
- length は 5
- 最後の添字は 4
です。
ここを混同しないように注意しましょう。
添字と長さの違いを表で整理しよう
この違いは、表で見るとかなりわかりやすいです。
| 配列の要素数 | length の値 | 使える添字 |
|---|---|---|
| 3 | 3 | 0, 1, 2 |
| 5 | 5 | 0, 1, 2, 3, 4 |
| 7 | 7 | 0, 1, 2, 3, 4, 5, 6 |
この表からもわかるように、length は「何個あるか」を表す数で、添字は 0 から始まります。
そのため、for文では
i < 配列変数名.lengthと書くのがちょうどよいわけです。
これなら、i は最後に length - 1 まで進みます。
図で for文との関係を見てみよう

この図は、watering.length が 5 なので、for文の条件 i < watering.length によって、i は 0 から 4 まで変化することを表しています。
つまり、配列に実際に存在する要素だけを順番に処理しているわけです。
固定の数字を使わなくても、配列の大きさに合わせて自然にループできるところが、length の大きな便利さです。
配列を扱うなら length はとても大切
配列の学習では、値の代入や取り出しに目が向きやすいですが、実際のプログラムでは「何個あるのか」を知ることも同じくらい大切です。
そのために使うのが length です。
length を使うと、
- 配列の要素数がすぐわかる
- 繰り返し回数を自動で合わせられる
- 配列の中身を変更しても修正が少なくて済む
- より読みやすく、扱いやすいコードになる
という大きなメリットがあります。
特に、for文と組み合わせる書き方は、配列を使うJavaプログラムで何度も登場します。ここでしっかり慣れておくと、この先の集計処理や平均計算、検索処理などもずっと書きやすくなります。
length は配列に合わせてコードを自然にしてくれる
配列の要素数を固定の数字で書く方法は、最初はわかりやすく感じるかもしれません。
でも、データの数が変わるたびに数字を書き直すのは、手間がかかるうえにミスの原因にもなります。
その点、length を使えば、配列の長さに合わせてコードが自然に動くようになります。
これは、Javaで配列を使うときのとても基本的で、とても実用的な考え方です。
配列を扱うときは、単に値を並べるだけでなく、その配列が何個の要素を持っているかを length で表すという習慣をつけておくと、コードがぐっと書きやすくなります。
