java
이 튜토리얼에서는 자바 재귀 함수, 장점과 단점에 대해 배울 것입니다.
자바에서 자신을 호출하는 메소드를 재귀 메소드라고 합니다. 그리고 이 과정을 재귀라고 합니다.
물리적 세계의 예는 서로 마주하는 두 개의 평행 거울을 배치하는 것입니다. 그 사이에 있는 모든 객체는 재귀적으로 반영됩니다.
<시간>
위의 예에서는 recurse()
main
내부의 메소드 방법. (일반 메서드 호출). 그리고 recurse() 메서드 내에서 동일한 recurse 메서드를 다시 호출합니다. 재귀 호출입니다.
재귀 호출을 중지하려면 메서드 내부에 몇 가지 조건을 제공해야 합니다. 그렇지 않으면 메서드가 무한히 호출됩니다.
따라서 if...else 문(또는 유사한 접근 방식)을 사용하여 메서드 내에서 재귀 호출을 종료합니다.
<시간>
class Factorial {
static int factorial( int n ) {
if (n != 0) // termination condition
return n * factorial(n-1); // recursive call
else
return 1;
}
public static void main(String[] args) {
int number = 4, result;
result = factorial(number);
System.out.println(number + " factorial = " + result);
}
}
출력 :
4 factorial = 24
위의 예에는 factorial()
이라는 메서드가 있습니다. . factorial()
main()
에서 호출됩니다. 방법. 숫자 인수로 전달된 변수.
여기에서 진술을 주목하십시오.
return n * factorial(n-1);
factorial()
메소드가 자신을 호출하고 있습니다. 처음에 n의 값은 factorial()
내에서 4입니다. . 다음 재귀 호출 중에 3이 factorial()
에 전달됩니다. 방법. 이 프로세스는 n까지 계속됩니다. 0과 같습니다.
n일 때 0과 같습니다. if
문은 false를 반환하므로 1이 반환됩니다. 마지막으로 누적된 결과는 main()
에 전달됩니다. 방법.
아래 이미지는 재귀를 사용하여 계승 프로그램을 실행하는 방법에 대한 더 나은 아이디어를 제공합니다.
<그림> <시간>재귀 호출이 수행되면 변수에 대한 새 저장 위치가 스택에 할당됩니다. 각 재귀 호출이 반환되면 이전 변수와 매개변수가 스택에서 제거됩니다. 따라서 재귀는 일반적으로 더 많은 메모리를 사용하고 일반적으로 느립니다.
반면에 재귀 솔루션은 훨씬 간단하고 작성, 디버그 및 유지 관리하는 데 시간이 덜 걸립니다.
추천 자료:재귀의 장점과 단점은 무엇입니까?
java
Java에서 split() 문자열이란 무엇입니까? StrSplit() 메소드를 사용하면 특정 Java 문자열 구분 기호를 기반으로 문자열을 분리할 수 있습니다. 대부분 Java 문자열 분할 속성은 문자열을 나누거나 분할하려는 공백 또는 쉼표(,)입니다. split() 함수 구문 public String split(String regex) public String split(String regex, int limit) 매개변수 정규식:Java 분할의 정규식이 텍스트/문자열에 적용됨 제한:Java 문자열 분할의 제한은 배열의
Java 메소드는 작업을 수행하기 위해 함께 그룹화되는 명령문의 모음입니다. System.out.println()을 호출할 때 예를 들어, 시스템은 콘솔에 메시지를 표시하기 위해 실제로 여러 명령문을 실행합니다. 이제 반환 값이 있거나 없는 고유한 메서드를 만들고 매개 변수가 있거나 없는 메서드를 호출하고 프로그램 디자인에서 메서드 추상화를 적용하는 방법을 배웁니다. 생성 방법 메소드의 구문을 설명하기 위해 다음 예를 고려하십시오 - 구문 public static int methodName(int a, int b) {