問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 文の終了条件が良くありません. すべての配列型には「.length」キーワードが存在します.for(int i = 0; i <= 5; i++){
とすることで,ソースの可読性も増し,また無用なエラー回避にもつながります.for(int i = 0; i < array.length; i++){
たとえば,このソースを
というように配列の長さを変更した場合,ほかの場所(for 文のところ)も 変更必須になってしまいます.値の直書きを避けるためにも「.length」は重要です.array = new int[5];
可能性のある例外:
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 という概念をクラス化したものであって, そのメンバ(フィールド)を参照しているのです.