[배열] 국비 41일차

포키·2022년 11월 17일
0

국비과정

목록 보기
28/73

배열

자주 나오는 에러

  • index값이나 배열 size를 변수로 두는 경우, 변수의 값을 제대로 예상하지 못했을 때 나타나는 오류

ArrayIndexOutOfBoundsException

class Ex1 {
	public static void main(String[] args) {
		// 자주 나오는 에러1 : 'ArrayIndexOutOfBoundsException' (RUNTIME ERROR)
		// 인덱스 값이 배열의 범위(인덱스 범위)를 벗어남
        int[] arr = {1, 2, 3, 4, 5};
		for(int i = 0; i <= arr.length; i++) {
			// index는 0부터 arr.length-1까지!! (zero-based)
			System.out.println(arr[i]);
		}
	}
}

NegativeArraySizeException

class Ex1 {
	public static void main(String[] args) {
		int[] arr;
		// 에러2 : 'NegativeArraySizeException' (RUNTIME ERROR)
		// 배열의 길이를 음수로 입력함
		int size = -1;
		arr = new int[size];
        }
}

예시 코드 - 객체가 원소로 들어가는 경우

import java.util.Scanner;
class Car {
	public int speed;
	public int mileage;
	public String color;
	public Car() {
		speed = mileage = 0;
		color = "red";
	}
	public void speedUp() {
		speed += 10;
	}
	public String toString() {
		return "속도: " + speed + " 주행거리: " + mileage + " 색상: " + color;
	}
}
public class CarTest {
	public static void main(String[] args) {
		final int NUM_CARS = 5;
		Car[] cars = new Car[NUM_CARS];
		for (int i = 0; i < cars.length; i++) {
			cars[i] = new Car();
		}
		for (int i = 0; i < cars.length; i++) {
			cars[i].speedUp();
		}
		for (int i = 0; i < cars.length; i++) {
			System.out.println(cars[i]);	
		}
	}
}
profile
welcome

0개의 댓글