1. 재귀메소드
(1)
팩토리얼을 재귀메소드로 나타내기
1
2
3
4
5
6
7
8
9
10
11
12
|
class Test
{
public static int fac(int num)
{
if(num==1) return 1;
else return num * fac(num-1);
}
public static void main(String[] args)
{
System.out.println(fac(5));
}
}
|
cs |
- 출력값
120
(2)
1부터 n까지의 합을 재귀메소드로 구현.
1
2
3
4
5
6
7
8
9
10
11
12
|
class Test
{
public static int add(int num)
{
if(num==1) return 1;
else return num+add(num-1);
}
public static void main(String[] args)
{
System.out.println(add(n));
}
}
|
cs |
(3)
정수 n을 전달 받아서, 2의 N승을 계산하여 반환하는 메소드를 재귀의 형태로 정의할 것.
1
2
3
4
5
6
7
8
9
10
11
12
|
class Test
{
public static int binary(int num)
{
if(num==1) return 2;
else return 2*binary(num-1);
}
public static void main(String[] args)
{
System.out.println(binary(n));
}
}
|
cs |
(4)
10진수 정수를 전달받아서, 전달받은 정수에 해당하는 2진수를 출력하는 메소드를 재귀의 형태로 정의
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
class Test
{
public static void binary(int num)
{
if(num<2) System.out.print(num);
else
{
binary(num/2);
System.out.print(num%2);
}
}
public static void main(String[] args)
{
binary(n);
System.out.println();
}
}
|
cs |
(5)
정수 하나를 넘겨주면 그 정수번째의 피보나치 수열을 리턴해 주는 메소드
1
2
3
4
5
6
7
8
9
10
11
12
13
|
class Test
{
public static int fibonacci(int num)
{
if (num==1 || num==2) return 1;
else return fibonacci(num-1) + fibonacci(num-2);
}
public static void main(String[] args)
{
for(int num=1; num<=n; num++)
System.out.print(fibonacci(num)+" ");
}
}
|
cs |
3. Return
return문은 현재 실행 중인 메소드를 종료하고 호출한 메서드로 되돌아간다.
지금까지 반환값이 있을 때만 return문을 썼지만, 원래는 반환값의 유무에 관계없이 모든 메소드에는 적어도 하나의 return문이 있어야 한다. 그런데도 반환타입이 void인 경우, return문 없이도 아무런 문제가 없었던 이유는 컴파일러가 메소드의 마지막에 'return;'을 자동적으로 추가해 주었기 때문이다.
'Java > Day5' 카테고리의 다른 글
[Java] class 클래스 (삼각형 클래스 & 원 클래스 & 사과장수 클래스) (0) | 2021.11.05 |
---|