- Variable Arguments (VARARGS) = 가변 인자 = 비정형 인자
- 메서드 파라미터의 인자가 변하는 형태(갯수의 제한이 없는 인자)
- 메서드 선언부의 파라미터 부분에 변수 선언 시 가변인자 기호(...)를 사용하여 표현
- => 파라미터의 데이터 타입 뒤에 ... 기호를 붙임
- - 가변인자를 사용하여 메서드를 정의하면 메서드 호출 시 파라미터 갯수에 제한이 없어짐
- => 단, 같은 타입의 인자만 전달 가능
- - 전달받은 데이터는 변수명에 해당하는 1차원 배열로 자동으로 생성됨
- - 주의! 가변인자는 마지막 파라미터로 단 한번만 지정 가능
Parameter = 매개변수(받는값)
Arguments = 전달변수(주는값)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<기본 문법>
제한자 리턴타입 메서드명(데이터타입...변수명){}
class VariableArguments{ // 가변인자를 사용할경우
public void variableArgument(int... nums){ // 전달받는 데이터를 갯수에 상관없이 nums 배열로 관리
// 1. 일반 for문 사용
for(int i = 0 ; i<nums.length ; i++){
System.out.println(nums[i]);
}
// 2. 확장 for문 사용(원하는 시작지점 또는 범위를 지정할수없음 )
for(int num : nums){
System.out.println(num);
}
}
|
cs |
가변인자를 활용한 계산기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
public void calc(char cal, int... nums) {
int total = nums[0];
if(cal == '+') {
for(int i = 1; i< nums.length; i++) {
total += nums[i];
}
}else if(cal == '-') {
for(int i = 1; i< nums.length; i++) {
total -= nums[i];
}
}else if(cal == 'x') {
for(int i = 1; i< nums.length; i++) {
total *= nums[1];
}
}else if(cal == '/') {
for(int i = 1; i< nums.length ; i++) {
total /=nums[i];
}
}
System.out.println(" = " + total);
}
public void calc(String opr, int... nums) {
int total= 0;
if(opr == "+") {
for(int num :nums) {
total +=num;
}
}
System.out.println(total);
}
|
cs |
'Language > Java' 카테고리의 다른 글
Pass by value & Pass by reference (0) | 2020.05.28 |
---|---|
접근제한자 (Access Modifier = 접근제어자) (0) | 2020.05.28 |
메서드 오버로딩(Method Overloading) (0) | 2020.05.27 |
메서드(Method) (0) | 2020.05.27 |
Class (0) | 2020.05.26 |