JavaRush /Blogue Java /Random-PT /Recursão em poucas palavras
vinsler
Nível 35

Recursão em poucas palavras

Publicado no grupo Random-PT
O que é recursão em Java, algum tipo de porcaria completa e incompreensível, vamos repassar.
Recursão em poucas palavras - 1
Exemplo:
public class Recursion {
        public static void main(String[] args) {
            System.out.println("Изначальный REC ( 15 , 9 )" );
            System.out.println(rec(15,9)); // запускаем sout с возвращаемым функцией [rec] результатом
        }

        static int rec (int m, int n) { // передаем в функцию [rec] 2 числа
            if(m % n == 0) { // если первое число [m] делится на второе число [n] нацело, то возвращаем его
                System.out.println("Окончателное число " + n);
                return n;
            } else {
                // если не делится нацело, то перезапускаем функцию и заносим в него другие аргументы :
                // в качестве первого уже будет второе число [n],
                // а в качестве второго будет остаток от деления первого[m] на второе[n] 15 / 9 = 1 (+ остаток 6)
                System.out.println("Заносим в REC (" + n + " , " + m % n + ")");
                return rec(n,m % n);
            }
        }
Você pode copiar este código e testá-lo você mesmo. Descrição do que acontece dentro com as variáveis: inicialmente 15, 9 dividido 15 / 9 = 1, resto 6 , se houver resto, então a nova função é lançada, mas os valores já estarão 9, 6(do resto) está dividido 9 / 6 = 1, resto 3 , se houver resto , então a nova função é iniciada, mas os valores já estarão 6, 3(do resto) está dividido 6 / 3 = 2, resto 0 se não houver resto, o segundo número é gerado pela função 3 . Agora vamos ver tudo com mais detalhes, para meu avó.
  1. A recursão em Java executa uma função de dentro da própria função.
  2. Quando uma função é iniciada, tudo o que foi feito dentro da função é apagado e uma nova função é lançada, com novos parâmetros.
Em outras palavras, se você vir a palavra lançamento da mesma função [rec], então pegue esta função logo no início de sua descrição, transfira os parâmetros fornecidos para lá e veja o que acontece a seguir. Essa é toda a explicação. Executamos a função, definimos certos parâmetros dentro dela, nos quais a recursão é iniciada ou algum resultado é retornado. Esse é todo o segredo. PS: Escrevi só de cabeça, na hora e ajudei um amigo por uma coisa, então todas as críticas e melhorias são bem vindas. )))
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION