JAVA

4.2 배열 원소 접근과 반복문 활용법 완전정복 🔄 초보자를 위한 자바 배열 처리 가이드

코딩 코디네이터 2025. 6. 9. 09:18
반응형

배열 원소 접근과 반복문 활용법 완전정복 🔄 초보자를 위한 자바 배열 처리 가이드

배열 요소 하나하나를 제대로 다뤄야 진짜 실력자! 반복문으로 배열을 완전 정복하는 실전 팁, 지금 시작합니다.

반응형

 

안녕하세요, 개발을 처음 시작하신 분들이 자주 만나는 개념 중 하나가 바로 ‘배열’이죠. 배열을 선언하고, 값을 넣고, 그 값을 꺼내서 사용하는 방법까지 익히면 다양한 프로그래밍 문제를 훨씬 쉽게 풀 수 있어요. 이번 포스트에서는 자바(Java)에서 배열의 각 원소에 접근하고, 반복문을 활용하여 배열을 효율적으로 처리하는 방법까지 자세히 알려드릴게요. 특히 초보자들이 자주 혼동하는 일반 for문과 향상된 for문의 차이점도 예제와 함께 살펴보겠습니다. 코딩이 막막하게 느껴지는 분들도, 이 글 하나로 배열 활용에 대한 감을 제대로 잡아보세요!

1. 배열 원소에 접근하는 방법 📌

자바(Java)에서 배열은 같은 자료형의 값들을 하나의 변수 이름으로 다룰 수 있게 해주는 구조예요. 배열이 편리한 이유는 인덱스(index)를 통해 각각의 값을 손쉽게 접근하고 변경할 수 있기 때문입니다.

배열 원소 접근 기본 문법

int[] scores = {90, 80, 70};
System.out.println(scores[0]); // 90 출력
System.out.println(scores[1]); // 80 출력
System.out.println(scores[2]); // 70 출력

중요한 점은 배열의 인덱스는 0부터 시작한다는 거예요. 그래서 세 번째 요소는 scores[2]로 접근해야 합니다.

배열의 길이 확인하기

배열의 크기, 즉 요소의 개수는 배열이름.length로 확인할 수 있어요. 이걸 통해 반복문과 함께 배열 전체를 순회할 때 유용하게 사용하죠.

System.out.println(scores.length); // 3 출력

배열 인덱스를 잘못 사용하면?

존재하지 않는 인덱스를 참조하면 ArrayIndexOutOfBoundsException 오류가 발생합니다. 예를 들어 scores[3]처럼 실제 길이보다 큰 인덱스를 접근하면 에러가 나요. 항상 .length를 활용해 안전하게 처리하는 습관이 필요해요.

요약: 배열 원소 접근 핵심 정리

  • 인덱스는 0부터 시작!
  • 배열이름.length로 크기 확인!
  • 범위를 벗어난 접근은 반드시 예외 발생!

2. 배열의 값을 조회하고 변경하기 🔍

배열의 가장 큰 장점 중 하나는 특정 위치의 값을 쉽게 읽고 변경할 수 있다는 점이에요. 인덱스를 이용하면 원하는 값에 바로 접근할 수 있으니까요.

배열 값 조회와 변경 예제

int[] nums = {1, 2, 3, 4, 5};

// 값 조회
System.out.println("첫 번째 값: " + nums[0]); // 1 출력

// 값 변경
nums[0] = 100;
System.out.println("변경된 첫 번째 값: " + nums[0]); // 100 출력

nums[0] = 100; 이 한 줄로 기존의 1을 100으로 바꿨어요. 이처럼 배열은 변경 가능한(mutable) 데이터 구조입니다.

배열 전체 값 출력해보기

배열 전체를 한 줄씩 출력해보고 싶다면 반복문이 필요해요. 이건 STEP 4에서 다룰 내용이지만, 간단히 예를 들어볼게요.

for (int i = 0; i < nums.length; i++) {
    System.out.println(nums[i]);
}

하나하나 꺼내서 출력하는 것보다 반복문과 조합해서 사용하는 게 배열을 더 잘 활용하는 방법이에요.

중간 정리 – 배열 값 변경 포인트

  • 배열의 각 요소는 인덱스로 접근 가능
  • 값을 변경할 땐 배열이름[인덱스] = 새로운 값; 사용
  • 반복문으로 배열 전체를 순회하면서 변경 가능

3. 반복문을 활용한 배열 순회 💫

배열을 다룰 때 반복문은 없어선 안 될 도구예요. 요소가 3개든 300개든, 반복문을 쓰면 하나하나 꺼내서 작업하는 걸 자동으로 처리해주니까요. 자바에서는 기본 for문향상된 for문 두 가지 방법을 사용할 수 있어요.

기본 for문으로 배열 순회하기

int[] scores = {95, 85, 75};

for (int i = 0; i < scores.length; i++) {
    System.out.println("인덱스 " + i + ": " + scores[i]);
}

기본 for문은 인덱스를 직접 조작할 수 있어서 요소의 위치 정보가 필요한 경우에 유리해요. 예를 들어 짝수 인덱스만 처리하거나, 인덱스를 조건에 따라 다르게 처리할 수 있죠.

향상된 for문 (for-each) 사용하기

for (int score : scores) {
    System.out.println("점수: " + score);
}

for-each 문은 인덱스를 몰라도 배열의 값을 순서대로 가져올 수 있어서 읽기 전용 처리에 매우 유용해요. 하지만 요소의 값을 바꾸거나 인덱스를 이용해야 하는 상황이라면 일반 for문을 써야 합니다.

두 반복문 비교 요약

구분 기본 for문 향상된 for문
인덱스 사용 가능 불가능
값 변경 가능 불가능
코드 간결성 조금 더 길다 더 간결하다

상황에 따라 두 반복문을 적절히 활용하는 게 중요해요. 단순히 배열 전체를 순회하며 출력하거나 검사할 때는 for-each 문이 깔끔하고 좋고, 복잡한 로직이 필요한 경우엔 일반 for문이 유리하죠.

4. 일반 for문과 향상된 for문의 차이점 🔄

자바를 배우면서 가장 자주 혼동하는 것 중 하나가 기본 for문향상된 for문 (for-each)의 차이예요. 실제로 어떤 걸 써야 할지 헷갈리는 경우도 많고요. 그래서 여기서 그 차이를 명확히 정리해볼게요.

기본 for문 vs 향상된 for문 – 예제 비교

기본 for문으로 배열 요소 수정하기

int[] scores = {70, 80, 90};

for (int i = 0; i < scores.length; i++) {
    scores[i] += 5; // 각 점수에 5점씩 추가
}

기본 for문은 인덱스를 통해 배열의 값을 직접 변경할 수 있어요. 이건 향상된 for문에서는 불가능하답니다.

향상된 for문에서 값 변경은 불가!

for (int score : scores) {
    score += 5; // 실제 배열에는 적용되지 않음
}

위 코드는 배열 요소를 직접 수정하는 것처럼 보여도, 실제로 score는 복사된 값이에요. 원본 배열에는 아무 변화가 없어요. 그래서 읽기 전용으로만 사용할 수 있다는 걸 꼭 기억하세요.

어떤 상황에 어떤 반복문을 쓰면 좋을까?

  • 배열 요소를 출력하거나 검사만 할 때 → 향상된 for문
  • 배열 요소를 변경하거나 인덱스를 활용할 때 → 기본 for문

두 반복문은 기능이 겹치기도 하지만, 성격이 달라요. 문제의 성격에 맞게 선택해서 쓰는 것이 가장 중요하죠.

5. 실전 예제로 배우는 배열 처리 연습 ✏️

이제 이론은 충분히 익혔으니, 실전 예제를 통해 진짜로 써보면서 익혀볼 시간이에요. 아래 예제들은 실제 개발에서 자주 마주치는 상황을 기반으로 했습니다. 기초 반복문 + 배열 활용 능력을 함께 길러볼 수 있는 좋은 연습입니다.

예제 1. 정수 배열의 평균 구하기

int[] numbers = {10, 20, 30, 40, 50};
int sum = 0;

for (int i = 0; i < numbers.length; i++) {
    sum += numbers[i];
}
double avg = (double) sum / numbers.length;

System.out.println("평균: " + avg);

배열의 모든 요소를 더한 후, 요소 수만큼 나누어 평균을 구했어요. 이 예제를 통해 누적 합산타입 캐스팅까지 한 번에 경험할 수 있습니다.

예제 2. 배열 요소 중 짝수만 출력하기

int[] data = {13, 24, 7, 92, 35};

for (int num : data) {
    if (num % 2 == 0) {
        System.out.println("짝수: " + num);
    }
}

for-each문과 if 조건문을 조합하면 배열 필터링도 간단하게 할 수 있어요. 특정 조건을 만족하는 값만 뽑아내는 것도 중요한 스킬이죠.

예제 3. 최대값 찾기 알고리즘

int[] scores = {88, 95, 70, 100, 92};
int max = scores[0];

for (int i = 1; i < scores.length; i++) {
    if (scores[i] > max) {
        max = scores[i];
    }
}
System.out.println("최대값: " + max);

이건 거의 모든 코딩테스트에서 등장하는 문제 유형이에요. 배열에서 가장 큰 값 또는 가장 작은 값을 찾는 로직은 자바 초보자라면 꼭 익혀야 할 패턴입니다.

실전 감각을 익히기 위한 팁

  • for문과 조건문을 조합하는 연습을 반복하세요
  • 배열의 길이를 먼저 파악하고 사용하는 습관을 들이세요
  • 실전 문제(백준, 프로그래머스 등)로 감각을 다져보세요!

6. 배열 활용의 핵심 포인트 정리 ✅

이제 배열을 선언하고, 값에 접근하고, 반복문으로 활용하는 방법까지 전체 흐름을 살펴봤습니다. 처음에는 익숙하지 않아도 몇 번 반복해서 연습하다 보면 배열은 오히려 자바에서 가장 직관적인 구조 중 하나라는 걸 느끼실 거예요.

특히 for문과 향상된 for문의 차이를 구분해서 문제 해결에 적절하게 적용하는 능력이 점점 중요해집니다. 무작정 외우기보다는 “왜 이 방식이 필요한가?”를 항상 생각하며 연습해보세요.

여기서 끝이 아니에요. 다음 단계에서는 2차원 배열, 문자열과 배열의 연결 등 더 흥미롭고 실용적인 주제로 확장해볼 수 있어요. 배열은 다양한 알고리즘과 로직의 기본이 되는 만큼, 오늘 다룬 개념은 확실히 익혀두는 걸 추천합니다 💪

반응형