解答編3
「基本型と参照型の配列」
 
← 前  :  次 →

問1の解答.

ベルくん(仮称)の問1

public class kadai {
  public static void main(String[] args) {
	// declaration
	int[] array;
	array = new int[6];

	// definition
	for(int i = 0; i <= 5; i++){
		array[i] = i * 10;
	}
	// output
	for(int i = 0; i <= 5; i++){
		System.out.println("Int[" + i + "] = " + array[i]);
	}
  }
}

2箇所 出てきている

for(int i = 0; i <= 5; i++){
という for 文の終了条件が良くありません. すべての配列型には「.length」キーワードが存在します.
for(int i = 0; i < array.length; i++){
とすることで,ソースの可読性も増し,また無用なエラー回避にもつながります.

たとえば,このソースを

array = new int[5];
というように配列の長さを変更した場合,ほかの場所(for 文のところ)も 変更必須になってしまいます.値の直書きを避けるためにも「.length」は重要です.
可能性のある例外:
 ArrayIndexOutOfBoundsException

問2の解答.

ベルくん(仮称)の問2
public class kadai {
  public static void main(String[] args) {
	// declaration
	Integer[] array;
	array = new Integer[6];

	// definition
	for(int i = 0; i <= 5; i++){
		array[i] = new Integer(i * 10);
	}
	
	// output
	for(int i = 0; i <= 5; i++){
		System.out.println("Int[" + i + "] = " + array[i]);
	}
  }
}

重要な点は,参照型の配列は二重に手続きが必要だということです.

よく間違えやすいので気をつけましょう.
可能性のある例外:
 NullPointerException
 ArrayIndexOutOfBoundsException

ベルくん(仮称)の憂鬱

int[] と Integer[] の区別が、はっきりしなかったので時間がかかってしまいました。
	・int[] = int型の配列(int型の集まり)
	・Integer[] = int型参照の配列(int型を参照する参照型の集まり)

「int型参照」ではなく「Integer クラス」と認識してください.

int 型を参照しているわけではありません. Integer クラスは integer という概念をクラス化したものであって, そのメンバ(フィールド)を参照しているのです.


表紙へ戻る