* 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);
}
}