본문 바로가기
기초 및 언어/▶ Java&JSP

11. 배열넘기기

by 류딩이 2025. 8. 18.

1차원 배열 넘기기

public class Ex05_배열넘기기 {

	public static void main(String[] args) { // static 메서드에서는 같은 static 메서드만 직접 호출 가능
		int[] src = {3, 4, 5};
		
		// 값 전달: 배열의 각 요소를 직접 꺼내서 전달
		send(src[0], src[1], src[2]); // send() 호출 (static 메서드이므로 직접 호출 가능)
		
		// 참조값 전달: 배열 자체를 전달 (주소값을 넘김)
		send2(src);

		System.out.println("main메서드 끝");
		
	}
	//main메서드 끝나는 중괄호

	// 값 전달: 배열 요소를 하나씩 꺼내서 매개변수로 전달
	public static void send(int a, int b, int c) { 
		System.out.println(a+"/"+b+"/"+c);
	}
	
	// 참조값 전달: 배열의 주소를 받아서 반복문으로 전체 요소 출력
	public static void send2(int[] des) { // 매개변수로 배열의 참조값을 받아 반복문으로 출력
		int i;
		des[1] = 77;  // 배열 값 수정 (원본에도 반영됨)
		for(i=0; i<des.length; i++) {
			System.out.print(des[i]+"~"); 
		}
		System.out.println();
	}

}

 

 

  • send() → 값 전달 방식, 원본 배열에는 영향 없음
  • send2() → 참조값 전달 방식, 메서드 안에서 값 수정 시 원본 배열도 변경됨
  • 자바에서 배열은 참조 타입이기 때문에, 주소값을 넘겨주면 효율적으로 처리 가능

 

2차원 배열 넘기기

public class Ex03_배열넘기기 {

    public static void main(String[] args) {
        // 2차원 배열 생성 (3행 3열)
        int[][] arr = {
                {1,2,3},
                {4,5,6},
                {7,8,9}
        };
        
        // 메서드 호출 → 배열을 넘겨줌
        send(arr);
    }
    
    // 2차원 배열을 받아서 출력하는 메서드
    public static void send(int[][] des) {
        // 바깥 for문: 행(row)을 하나씩 반복
        for(int i = 0; i < des.length; i += 1) {
            // 안쪽 for문: 해당 행의 열(column)을 하나씩 반복
            for(int j = 0; j < des[i].length; j += 1) {
                // 각 원소 출력 (줄바꿈 없이 이어서 출력)
                System.out.print(des[i][j]);
            }
            // 한 행이 끝나면 줄바꿈 (행 구분)
            System.out.println();
        }
    }
}

 

'기초 및 언어 > ▶ Java&JSP' 카테고리의 다른 글

13. 재귀호출  (3) 2025.08.18
12. 변수  (1) 2025.08.18
10. 클래스  (3) 2025.08.14
09. 2차원  (7) 2025.08.14
08. 정렬  (2) 2025.08.14