はじめに
この実験では、Java の配列が特定の長さを持っているかどうかをチェックする方法を学びます。まず、組み込みの length
プロパティを使用して配列のサイズを決定する方法を理解します。
その後、配列の長さを期待値と比較して、目的のサイズと一致するかどうかを確認する方法を学びます。最後に、配列の長さをチェックする際に null 配列をどのように扱うかを探り、潜在的なエラーを回避します。
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
この実験では、Java の配列が特定の長さを持っているかどうかをチェックする方法を学びます。まず、組み込みの length
プロパティを使用して配列のサイズを決定する方法を理解します。
その後、配列の長さを期待値と比較して、目的のサイズと一致するかどうかを確認する方法を学びます。最後に、配列の長さをチェックする際に null 配列をどのように扱うかを探り、潜在的なエラーを回避します。
length
プロパティを使用するこのステップでは、Java で length
プロパティを使用して配列のサイズを決定する方法を学びます。配列のサイズを理解することは、配列の要素を繰り返し処理したり、配列に含まれる要素の数に依存する操作を実行したりするための基本です。
Java では、配列には length
という組み込みプロパティがあり、これは配列が保持できる要素の数を格納します。このプロパティは final 変数であり、配列が作成された後はその値を変更することができません。
length
プロパティの使い方を示すために、簡単な Java プログラムを作成しましょう。
WebIDE エディタで HelloJava.java
ファイルが開いていない場合は、開きます。
ファイルの内容全体を次のコードに置き換えます。
public class HelloJava {
public static void main(String[] args) {
// Declare and initialize an integer array
int[] numbers = {10, 20, 30, 40, 50};
// Get the length of the array using the length property
int arraySize = numbers.length;
// Print the size of the array
System.out.println("The size of the array is: " + arraySize);
}
}
このコードの新しい部分を見てみましょう。
int[] numbers = {10, 20, 30, 40, 50};
: この行は numbers
という名前の整数配列を宣言し、5 つの整数値で初期化します。int arraySize = numbers.length;
: ここで length
プロパティを使用しています。numbers.length
は numbers
配列のサイズにアクセスし、この値を arraySize
という整数変数に格納します。System.out.println("The size of the array is: " + arraySize);
: この行は arraySize
変数に格納された値をコンソールに出力します。ファイルを保存します (Ctrl+S または Cmd+S)。
では、修正したプログラムをコンパイルしましょう。ターミナルで、cd ~/project
を実行して ~/project
ディレクトリにいることを確認します。その後、次のコマンドを実行します。
javac HelloJava.java
コンパイルが成功すると、何も出力されません。
最後に、プログラムを実行しましょう。
java HelloJava
次の出力が表示されるはずです。
The size of the array is: 5
この出力は、length
プロパティが numbers
配列の要素数を正しく返したことを確認しています。
配列のサイズを取得する方法を理解することは、すべての要素をループ処理したり、新しい配列のメモリを割り当てたりするなど、多くのプログラミングタスクにとって重要です。
このステップでは、配列の実際のサイズを期待するサイズと比較することで、length
プロパティについての理解を深めます。これは、入力の検証やデータの整合性を確保する際など、プログラミングにおいて一般的なタスクです。
条件文(if
文など)を使用して、配列の長さが特定の値と一致するかどうかをチェックすることができます。
HelloJava.java
プログラムを変更して、配列の長さを期待する値と比較しましょう。
WebIDE エディタで HelloJava.java
ファイルを開きます。
現在のコードを次のコードに置き換えます。
public class HelloJava {
public static void main(String[] args) {
int[] numbers = {10, 20, 30, 40, 50};
int expectedSize = 5; // We expect the array to have 5 elements
int arraySize = numbers.length;
System.out.println("The size of the array is: " + arraySize);
System.out.println("The expected size is: " + expectedSize);
// Compare the actual size with the expected size
if (arraySize == expectedSize) {
System.out.println("The array size matches the expected size.");
} else {
System.out.println("The array size does NOT match the expected size.");
}
}
}
新しい部分は次の通りです。
int expectedSize = 5;
: expectedSize
という整数変数を宣言し、その値を 5 に設定します。これは numbers
配列が持つことを期待するサイズです。System.out.println("The expected size is: " + expectedSize);
: 分かりやすくするために、期待するサイズを出力します。if (arraySize == expectedSize)
: これは if
文で、arraySize
の値が expectedSize
の値と等しいかどうかをチェックします。==
演算子は比較に使用されます。System.out.println("The array size matches the expected size.");
: この行は、if
文の条件が真の場合(サイズが一致する場合)に実行されます。else
: このキーワードは、if
文の条件が偽の場合に実行されるコードブロックを導入します。System.out.println("The array size does NOT match the expected size.");
: この行は、if
文の条件が偽の場合(サイズが一致しない場合)に実行されます。ファイルを保存します(Ctrl+S または Cmd+S)。
ターミナルで変更したプログラムをコンパイルします。
javac HelloJava.java
コンパイルしたプログラムを実行します。
java HelloJava
次のような出力が表示されるはずです。
The size of the array is: 5
The expected size is: 5
The array size matches the expected size.
この出力は、プログラムが実際の配列サイズ(5)と期待するサイズ(5)を正しく比較し、適切なメッセージを出力したことを示しています。
expectedSize
の値を変更したり、numbers
配列から要素を追加/削除したりして、出力がどのように変化するかを試してみることができます。この演習は、条件付きロジックが配列のプロパティとどのように連携するかを理解するのに役立ちます。
この最後のステップでは、初期化されていない、つまり null
の配列の length
プロパティにアクセスしようとしたときに何が起こるかを調べます。null
値を適切に扱う方法を理解することは、プログラムのエラーを防ぐために重要です。
Java では、宣言されたがオブジェクト参照が割り当てられていない変数のデフォルト値は null
です。null
オブジェクトのプロパティやメソッドにアクセスしようとすると、Java は NullPointerException
をスローします。これは Java プログラミングでよく遭遇するランタイムエラーです。
null
配列の length
にアクセスしようとしたときに何が起こるか、そしてそれをうまく処理する方法を確認するために、プログラムを変更しましょう。
WebIDE エディタで HelloJava.java
ファイルを開きます。
現在のコードを次のコードに置き換えます。
public class HelloJava {
public static void main(String[] args) {
int[] numbers = null; // Declare an array but set it to null
// Attempt to access the length property (this will cause an error)
// int arraySize = numbers.length; // Commenting this out to prevent error
// How to safely check for null before accessing length
if (numbers != null) {
int arraySize = numbers.length;
System.out.println("The size of the array is: " + arraySize);
} else {
System.out.println("The array is null. Cannot get its length.");
}
}
}
変更点の詳細は次の通りです。
int[] numbers = null;
: numbers
配列を宣言しますが、明示的にその値を null
に設定します。これは、numbers
変数が現在メモリ内の実際の配列オブジェクトを参照していないことを意味します。// int arraySize = numbers.length;
: numbers.length
に直接アクセスしようとする行をコメントアウトしました。if
チェックなしでこのコードを実行すると、NullPointerException
が発生します。if (numbers != null)
: null
を処理するための重要な部分です。if
文を使用して、numbers
変数が null
で ない かどうかをチェックします。!=
演算子は「等しくない」を意味します。int arraySize = numbers.length; System.out.println("The size of the array is: " + arraySize);
: このコードブロックは、numbers
が null
でない場合にのみ実行されます。このブロック内では、numbers.length
にアクセスするのは安全です。else
: このブロックは、if
条件が偽の場合、つまり numbers
が null
である場合に実行されます。System.out.println("The array is null. Cannot get its length.");
: 配列が null
の場合、このメッセージが出力され、ユーザーに配列の長さを取得できないことを通知します。ファイルを保存します(Ctrl+S または Cmd+S)。
ターミナルで変更したプログラムをコンパイルします。
javac HelloJava.java
コンパイルしたプログラムを実行します。
java HelloJava
次の出力が表示されるはずです。
The array is null. Cannot get its length.
この出力は、プログラムが配列が null
であることを正しく識別し、NullPointerException
をスローせずに状況を処理したことを示しています。
null
値を処理することは、Java プログラミングにおいて非常に重要なスキルです。オブジェクト参照のプロパティやメソッドにアクセスしようとする前に、常にその参照が null
でないことをチェックして、ランタイムエラーを回避してください。
この実験では、Java で組み込みの length
プロパティを使用して配列のサイズを決定する方法を学びました。このプロパティは、配列が保持できる要素の数に簡単にアクセスする方法を提供します。整数配列を作成し、その length
にアクセスし、結果を出力することでこれを実証しました。
続くステップでは、この基本的な概念を基に、配列のサイズを期待する長さと比較し、潜在的なヌル配列のシナリオを処理することで、Java での配列操作に対する理解をさらに深めるでしょう。