Args, arguments
: 비정형 인자
: 매개변수를 배열로 변환하는 키워드
1 2 3 4 5 | public void showArgs( int ... args) { System.out.println(args[ 0 ]); System.out.println(args[ 1 ]); } |
전달받은 int형 인자값을 args[]배열에 저장하여 배열의 요소를 출력하는 메서드다.
단 이렇게 코드를 작성하면 인자값이 2개가 아닐때 에러가 발생한다. (ArrayIndexOutOfBoundsException)
따라서 런타임 에러를 방지하기 위해선 다음처럼 작성한다.
1 2 3 4 5 6 7 8 | public void showArgs( int ... args) { for ( int i= 0 ; i<args.length; i++) //전달받은 인자값만큼 배열의 길이가 결정되므로 그 만큼만 반복 { System.out.println(args[i]); } } |
향상된 포문을 활용할 경우 다음과 같다.
1 2 3 4 5 6 7 | public void showArgs( int ... args) { for ( int ns : args) { System.out.println(ns); } } |
다음 예제는 args를 활용한 인자값들의 계산 결과를 구하는 메서드다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | class Args { public int multiply( int ... args) { int result= 1 ; for ( int ns : args) { result = result * ns; } return result; } } Args a = new Args(); System.out.println(a.multiply( 2 , 2 , 2 , 2 )); → 16 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public static void main(String[] args) { m1( 1 , 2 , 3 ); //6 m1( 1 , 2 , 3 , 4 ); //10 } public static int m1( int ... args) { int sum = 0 ; for ( int i= 0 ; i<args.length; i++) { sum += args[i]; } return sum; } |
'java' 카테고리의 다른 글
상속과 구현, 업캐스팅 (0) | 2013.07.25 |
---|---|
팩토리얼(재귀호출) (0) | 2013.07.25 |
연산자 우선순위 (0) | 2013.07.25 |
제어문 (0) | 2013.07.25 |
파일명 일괄변경 (0) | 2013.07.25 |