1
resposta

[Sugestão] A solução dada pelo instrutor realmente é a melhor?

public Avaliacao(int nota)
    {
        if (nota <= 0) nota = 0;
        if (nota >= 10) nota = 10;
        Nota = nota;
    }

Nesse trecho de código se por exemplo Avaliacao(-5), será executado a linha if(nota<=0) nota =0, mas também a linha seguinte será avaliada desnecessariamente. Então creio que o melhor seria colocar um early return

if (nota <= 0)
    {
        Nota = 0;
        return;
    }
    if (nota >= 10)
    {
        Nota = 10;
        return;
    }
    Nota = nota;

Assim o limite superior não será avaliado se o limete superior já estiver sido avaliado como verdadeiro.

1 resposta

Oi Isac! Tudo bem?

Gostei muito da sua sugestão! Realmente utilizar o early return pode ser uma boa em casos assim. O único ponto que podemos observar é que no primeiro caso acabamos utilizando menos linhas de código, ao contrário do segundo, em que foi preciso criar blocos com os ifs. Essa é uma escolha que vai depender do projeto em que estamos trabalhando. Nesse caso específico, em que apenas comparamos valores numéricos, a diferença será mínima entre utilizar ou não o early return. Mas em outros casos, se precisarmos fazer verificações mais complexas que podem estar sendo desnecessárias, realmente ele pode ser muito útil.

Sempre é importante que a pessoa desenvolvedora faça as devidas comparações e utilize o melhor para aquele problema.

Caso tenha alguma observação ou dúvida, fique à vontade para enviar aqui no fórum!

Espero ter contribuído! Abraços e bons estudos!