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

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

sera estes dois loops abaixo retornam exactamente o mesmo resultado? Tendo em conta que no bloco whiel utilizamos o operador "<=" e no bloco for o operador "<".

int i = 150; while(i<= 300);

for (int i = 150; i < 300; i++)

3 respostas

Olá Cremildo! Então, você esqueceu o incremento do while() caso ele esteja sem incremento mesmo ele continuará o loop infinitamente pois ele nunca atingirá 300. Mas caso você tenha apenas esquecido de por o incremento aqui, os loops não retornarão o mesmo resultado. Caso você adicione um System.out.println(), dentro de cada loop, da seguinte forma:

        for(int i = 150; i < 300; i++){
            System.out.println(i);
        }

        int i = 150;
        while(i <= 300){
            System.out.println(i);
            i++;
        }

Você verá que o for() irá imprimir os valores até 299. Enquanto o while() irá imprimir os valores até 300. Isso ocorre porque você pós como condição para o for() continuar, os valores serem menores que 300, então quando o valor é igual a 300 o loop para porque 300 não é menor que 300. Já o while() você pós como condição que o valor deveria ser menor ou igual a 300, assim quando ele chega em 300 ele ainda esta dentro da condição e por isso o loop não para imprimindo o valor 300, mas quando ele vai repeti novamente o valor é 301 então o loop para pois 301 não é menor nem igual a 300.

Espero que eu tenha ajudado! Bons Estudos!

solução!

Obrigado Romario! Ajudou sim, é que no exemplo do professor os operadores vinham assim como os coloquei para para imprimir numeros que vao de 150 a 300, usando um fluxo de repeticao, mas ja percebi. Obrigaedo

Cremildo, bom dia. Recomendo que você faça um curso de algoritmos antes de ir para uma linguagem de programação! Saber lógica de programação é essencial, beleza?

Abraços.