Não consegui entender nada da explicação. Como por exemplo, por que é chamado o método 1, 2 E só após a execução do laço, o println é executado com o fim dos métodos????
Não consegui entender nada da explicação. Como por exemplo, por que é chamado o método 1, 2 E só após a execução do laço, o println é executado com o fim dos métodos????
Olá Rodrigo, tudo bem?
Vou tentar lhe ajudar nessa questão, repare que primeiramente é executado o método main, logo é executado:
System.out.println("Ini do main");
metodo1();
Repare que a partir de agora ele irá entrar dentro do método 1, e executará:
System.out.println("Ini do metodo1");
metodo2();
É como uma pilha de papeis, imagine os métodos como um papel e toda vez que o "papel" é chamado ele é colocado em cima dos outros papeis. Então estamos método 1(papel 1), agora foi chamado o método 2, logo irá ser colocado o método 2 em cima da pilha.
System.out.println("Ini do metodo2");
for(int i = 1; i <= 5; i++) {
System.out.println(i);
}
System.out.println("Fim do metodo2");
Nota-se agora que nesse método não foi chamado outro método, logo até agora temos impresso no console:
Ini do main
Ini do metodo1
Ini do metodo2
1
2
3
4
5
Fim do metodo2
Agora que terminamos de executar tudo que tinha no papel(método 2) do topo da pilha podemos retirá-lo para executar o papel que está logo embaixo, que é o método 1, que a única coisa que resta é o println de lá, logo ficará:
Ini do main
Ini do metodo1
Ini do metodo2
1
2
3
4
5
Fim do metodo2
Fim do metodo1
E agora podemos retirar o papel do método 1 já que tudo nele foi executado, e agora só sobra o resto do método main:
Ini do main
Ini do metodo1
Ini do metodo2
1
2
3
4
5
Fim do metodo2
Fim do metodo1
Fim do main
E fim da pilha de papéis, logo fim do programa. Espero que essa minha analogia com uma pilha de papéis possa lhe ajudar a sanar sua dúvida. Qualquer outra dúvida é só chamar!