Estou estudando para um concurso de TI, mas não entendi esse código
public static int segredo(int a) {
if (a < 2) {
return 0;
} else {
return segredo(a-2) + 1;
}
}
OBS: essa essa parte fiquei sem entender if (a<2) {
Estou estudando para um concurso de TI, mas não entendi esse código
public static int segredo(int a) {
if (a < 2) {
return 0;
} else {
return segredo(a-2) + 1;
}
}
OBS: essa essa parte fiquei sem entender if (a<2) {
segredo(int a)
if (a < 2)...
o método segredo recebe um inteiro chamado ‘a’.
Se ‘a’ for menor que 2, a função vai retornar 0
a < 2
a menor que 2
Alguns outros operadores que podem aparecer:
a > 2
a maior que 2
a <= 2
a menor ou igual a 2
a >= 2
a maior ou igual a 2
Isto é um método recursivo (que se chama a ele próprio) e para algumas pessoas é um conceito dificil de assimilar.
Vamos supor que em algum lugar era invocado segredo (6)
segredo(6-2) + 1
segredo(4)
segredo(4-2) + 1
segredo(2)
segredo (2-2) + 1)
segredo(0)
0
como resulado desegredo(0)
segredo(2)
segredo(4)
segredo(6)
o método original recebe então 3 como resultado de segredo(6)