Oi Gus, tudo certo?
A forma que você construiu seu código está correta, sim!
Em programação, em várias situações temos muitas formas possíveis de chegar a um mesmo resultado. Por esse motivo, tanto a sua conclusão quanto a alternativa da questão estão corretas. No caso da lógica do instrutor, o que acontece é o seguinte:
- A bolinha inicia com raio 19, dentro do programa;
- Quando o programa é executado, a função
atualizaTela()
já é executada, também; - A bolinha entra na segunda condição “se o raio for menor que 20, o fator de crescimento é 1”, e a bolinha vai crescer;
- Quando o raio atingir 31, ele atende a primeira condição, antes de ser desenhado na tela: “se o raio for maior que 30, o fator de crescimento é -1”.
Por duas execuções seguidas da função atualizaTela()
, então, a bolinha terá valor 20 ou valor 30. Como quando um objeto que foi disparado paira por alguns momentos no ponto mais alto de sua trajetória antes de cair.
Já no código que você desenvolveu, a mudança de tamanho da bolinha ocorre de forma um pouco mais fluida.
- O raio inicia 20, e atende a condição “se raio maior ou igual a vinte, o fator de crescimento será 1”
- Quando o raio atinge 30, ele já se encaixa na condição “se raio maior ou igual a 30, o fator de crescimento será -1” e, com isso, a bolinha já passa a diminuir de tamanho.
Esse tipo de questionamento é super importante para compreender a lógica por trás dos comandos. Continue assim!
Espero ter esclarecido sua dúvida. Estou à disposição.
Abraço!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado! ✓.