sábado, 3 de agosto de 2019

Exemplo de recursão com impressão da pilha de execução

import java.lang.Exception;

class Produto1 {
    static Exception e = new Exception();

    static int prod (int a, int b) {
        System.out.println ("a="+a+" b="+b);
        int retVal=0;
        e = new Exception();
        e.printStackTrace();
        if (b==1) {
            return a;        
        }
        retVal= a + prod (a, b-1);
        System.out.println ("a="+a+" b="+b);
        e = new Exception();
        e.printStackTrace();
        return retVal;
    }
    
    public static void main (String[] args) {
        System.out.println (prod (35));
        System.out.println ("fim do main");
    }
}
Java2html

O objeto Exception e armazena uma representação da pilha de execução no momento em que é instanciado. Aproveito isso para imprimir a pilha de execução antes e depois de cada invocação (chamada) recursiva. Isto traz informação que permite "ver" a pilha de execução crescendo à medida em que as invocações são feitas e diminuindo à medida que as invocações retornam.

Nenhum comentário:

Postar um comentário