はじめに
この実験では、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 配列でテストする
この最後のステップでは、初期化されていない、つまり 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 での配列操作に対する理解をさらに深めるでしょう。



