2019년 7월 26일 금요일

java Varargs (가변인자)




* Varargs (가변인자)

 메소드의 매개변수의 개수를 동적으로 지정할 수 있는 방법이 있는데 메소드 오버로드를 하거나 가변인자(Variable argument)를 사용할 수 있다.

아래 코드는 add 메소드의 매개변수를 가변인자로 받아들여, int형 타입의 파라미터들의 개수를 동적으로 넣을 수 있다.




아래는 직접 작성한 코드이다.
class Add {
    void add(int... args){ //타입...변수명으로 사용한다.
        int sum = 0;
        String s = "";
        int[] arr = args; //args는 배열이므로 for문으로 이용해 값 하나 하나에 접근이 가능하다.
        for(int n : args)
            sum += n;
        
        for(int i = 0 ; i < arr.length; i++){
            s += arr[i];
            if(arr.length-1 == i)
                s += "=";
            else
                s += "+";
        }
        System.out.println(s+sum);
    }
}

hackerrank의 답안이 간결하여 가져왔다.
class Add{
    public void add(int ...arr){
        int sum = 0;
        String s = "";
        for(int i = 0; i < arr.length; i++){
            sum += arr[i];
            s += arr[i];
            if(i < arr.length-1) //마지막 순환이 아닌 경우에만 +기호를 붙인다.
                s += "+";
        }
        s += "=" + sum;
        System.out.println(s);
    }
}

댓글 없음:

댓글 쓰기