Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvida no Ex. 9 da Aula 2 - Variáveis e fluxo

Olá "amigos do fórum", tudo jóia?

Sobre o exercício 9 da segunda aula, eu havia feito o código assim:

class INTX{
    public static void main(String[] args){

        int x = 13;

        while(x != 1){
            if(x % 2 == 0){
                System.out.print(x + " > ");
                x = x / 2;
            }else{
                System.out.print(x + " > ");
                x = 3 * x + 1;
            }
        }
    }    
}

Ele "funcionava", porém não apresentava o número "1" no final do print... Aí eu utilizei o botão "Preciso de ajuda!" e vi que bastava adicionar o "System.out.print(x);" fora do While...

Agora vem uma dúvida

A solução do professor gerou um código mais "bonito" (abaixo)

        while(x != 1){
            System.out.print(x + " > ");
            if(x % 2 == 0){
                x = x / 2;
            }else{
                x = 3 * x + 1;
            }
        }
        System.out.print(x);

Fora a "beleza" do código, existe algum fator importante nessa diferença?

Obrigado :)

3 respostas

Olá Cassio! Não entendi bem qual seria a "beleza" do código que você esta se referindo. Basicamente o seu código é o mesmo do da reposta do professor, apenas com a diferença que você citou do System.out.println (x) ao final, fora do while (). Outra diferença é que ao invés de colocar um System.out.println () dentro do if (), foi colocado fora, pois diminui o código e convenhamos que não a necessidade de estar dentro da condição pois é um fator que é pra ser feito independentemente de algima condição. Não sei se isso do if () é o fator de beleza que você está se referindo, mas se puder esclarecer eu explicarei.

Bons Estudos!

solução!

O código do professor é um código mais limpo, o que alem de facilitar a leitura do código faz com que a jvm analise menos código. Neste caso a diferença é imperceptível porem em uma aplicação com uma logica grande o código mais limpo pode influenciar no desempenho da jvm.

Obrigado pelas respostas, ambos tocaram em pontos importantes, como o Romário disse, o print não depende da condição, logo, faz sentido ele ficar fora...

E o Albino falou algo que eu havia imaginado, em uma aplicação complexa, talvez o "código" que ficou sobrando faça alguma diferença...

Enfim, obrigado :D

[]'s