반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Tkinter
- PostgreSQL
- Google Spreadsheet
- Apache
- numpy
- string
- Github
- math
- Java
- Google Excel
- gas
- Kotlin
- matplotlib
- Redshift
- google apps script
- Excel
- PANDAS
- hive
- 파이썬
- Mac
- PySpark
- django
- array
- Python
- dataframe
- GIT
- c#
- SQL
- list
Archives
- Today
- Total
달나라 노트
Java - Recursion 본문
728x90
반응형
Original source = www.w3schools.com
public class JavaRecursion {
// Java에서도 재귀 방식으로 method를 사용하는 것이 가능합니다.
public static int func_sum(int k) {
if (k > 0) {
return k + func_sum(k - 1);
}
else {
return 0;
}
}
public static void main(String args[]) {
int result = func_sum(10);
System.out.println(result);
}
// 위 코드는 1~10까지 숫자의 합을 구하는 코드입니다.
// 재귀 방식으로 method를 사용하는 방법은 사실 이해가 좀 어려워서 직접 테스트 해보는 것이 빠릅니다.
// 위 코드가 어떻게 동작하는지 보면
//
// Step 1 = 10 + func_sum(9)
// Step 2 = 10 + 9 + func_sum(8)
// Step 3 = 10 + 9 + 8 + func_sum(7)
// ...
// Step 8 = 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + func_sum(2)
// Step 9 = 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + func_sum(1)
// Step 10 = 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + func_sum(0)
// Step 11 = 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0
//
// 위처럼 단계별로 보면 좀 쉬울겁니다.
}
-- Result
55
public class JavaRecursion {
// 이 예시처럼 func_sum에 2개의 parameter를 줘서 특정 범위 내의 숫자끼리의 합을 구하는 것도 가능합니다.
public static int func_sum(int a, int b) {
if (a > b) {
return a + func_sum(a - 1, b);
}
else {
return 0;
}
}
public static void main(String args[]) {
int result = func_sum(10, 5);
System.out.println(result);
}
}
-- Result
40
728x90
반응형
'Java' 카테고리의 다른 글
Java - 2개의 class 선언, 객체 parameter (0) | 2021.03.13 |
---|---|
Java - object (객체) (0) | 2021.03.13 |
Java - Scope (0) | 2021.03.12 |
Java - method overloading (0) | 2021.03.12 |
Java - method parameter (0) | 2021.03.12 |
Comments