# 배열과 파라미터 #### CODE <a class='btn btn-default' href='/codes/19056'>Link</a> ``` public class ArrayToParameter { public static void main(String[] args) { //배열 생성 int[] evens = { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18 }; // 짝수 int[] primes = { 2, 3, 5, 7, 11, 13, 17, 19 }; // 소수 //계산 int evenSum = sum(evens); int primeSum = sum(primes); //출력 System.out.println("0 이상 20 미만의 짝수와 소수 중.."); System.out.printf("짝수의 합: %d\n", evenSum); System.out.printf("소수의 합: %d\n", primeSum); } public static int sum(int[] arr){ int sum = 0; for(int i = 0; i <= arr.length; i++){ // 이부분에서 i <= arr.length; 이렇게되야 마지막 배열에 18까지 들어가는거아닌가요? < 이걸로하면 18보다 작으니까 18은 포함이 안되야 맞는게아닌가요 ?! sum += arr[i]; } return sum; } } ``` #### INPUT ``` ``` #### OUPUT ``` Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10 at ArrayToParameter.sum(ArrayToParameter.java:23) at ArrayToParameter.main(ArrayToParameter.java:8) ```
# 모든 배열 순회 루틴 모든 배열을 순회하는 루틴은 아래와 같습니다. 배열의 인덱스는 `0`부터 시작함을 주의하세요! ``` // 배열 생성 int[] arr = { 0, 1, 2, 3, 4 }; // 배열 순회 for (int i = 0; i < arr.length; i++) { ... // arr[0], arr[1], arr[2], arr[3], arr[4] } ``` ## PS. `i <= arr.length` 의 경우, 마지막 요소를 벗어나게 됩니다.