산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> 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

  1. 자바 연산자
  2. 자바 인터페이스
  3. 자바 리소스 사용
  4. 자바 주석
  5. 자바 주석 유형
  6. Java의 String Length() 메서드:예제로 찾는 방법
  7. 예제가 있는 Java 문자열 charAt() 메서드
  8. 예제가 포함된 Java 문자열 endWith() 메서드
  9. Java 문자열 replace(), replaceAll() 및 replaceFirst() 메서드
  10. 재귀를 사용하여 Java에서 문자열을 뒤집는 방법