재귀호출 max(max(i, j), k)
int add(int i)
int add(1+2)
에서
일반 int i
는 formal Parameter
라고 한다.
1+2
가 파라미터 일 시에는 actual Parameter
라고 한다.
public class passtest {
static void process(int value) {
System.out.println("전달 받은 파라미터 값 : " + value);
value = 10;
System.out.println("변경된 파라미터 값 : "+value);
}
public static void main(String[] args) {
int i = 5;
System.out.println("선언한 변수의 초깃 값 : "+i);
process(i);
System.out.println(("process 함수 호출 이후 변수의 값 : "+i));
}
}
자바는 참조넘기기 지원하지 않음. 무조건 pass by value 임.
사용하려면 int[] array 등의 배열 사용해서 넘길것
int i = 5;
int j = i;
와
int [] array = {1,2};
int [] array2 = array;
는
완벽하게 다르게 동작한다.
public class changepara {
public static int max(int... values) {
int big = 0;
for(int i:values) {
if(i>big) {
big = i;
}
}
return big;
}
public static void main(String[] args) {
System.out.println(max(3,5,6,7,8));
}
}
이 때 values
는 int 타입의 배열로 인식을 한다.
static int factorial(int n) {
if (n < 1) {
return 1;
}
else {
return factorial(n - 1) * n;
}
}
조건에 맞을 때까지 함수를 호출해 새로운 지역 스택이 계속 생성된다.
ex). 피보나치 수열 (인구 감소 예측)