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

Duvida

Ola Pessoal,

Como é feita a execuçao e leitura desse codigo? Eu entendo que quando o loop chega no 3 ele irá parar, pois esse numero e divisivel, mas ao entrar no IF el nao incrementa o (i)?

Obrigado Everson

4 respostas

Olá Everson, tudo bem?

  1. i começa com 0 no primeiro loop, mas antes de ser executado o % ele vira 1 através do ++i
  2. volta para o for, agora i vale 2 por causa do i++
  3. entra no for e incrementa novamente o i para 3 por causa do ++i, executa o break e sai fora do for
  4. imprime 3
    public class Teste {
     public static void main(String[] args) {
         int i;
         for (i = 0; i < 5; i++) {
             if (++i % 3 == 0) {
                 break;
             }
         }
         System.out.println(i);
     }
    }

Oi Otavio olha vou usar sua explicacao pra ver se entendo:

i começa com 0 no primeiro loop, mas antes de ser executado o % ele vira 1 através do ++i (if) volta para o for, agora i vale 2 por causa do i++ (Agora ele nao deveria entrar no if novamente, antes de voltar ao for, ou ele entra apenas uma vez no if?

entra no for e incrementa novamente o i para 3 por causa do ++i, executa o break e sai fora do for

solução!

Olá Everson, tudo bem?

Sim, o IF é executado toda vez que um novo loop do for é realizado, é que minha frase "entra no for" no item 3 ficou estranha, eu quis dizer que vai executar o conteúdo dentro do for, o próprio if no caso, vou editar o texto para:

  1. i começa com 0 no primeiro loop, mas antes de ser executado o % ele vira 1 através do ++i
  2. volta para o for, agora i vale 2 por causa do i++
  3. executa novamente o if dentro do for e incrementa o i para 3 por causa do ++i, executa o break e sai fora do for
  4. imprime 3

Acho que agora faz mais sentido

Grande Otavio Ficou otimo, obrigado

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software