1
resposta

FOR looping infinito

Fiz o comando para incrementar + 2 e ficou assim, resultado correto não seria 2, 4 e stop.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, André.

Tudo bem?

Pode ser o valor inicial de i que foi definido como i=1 ao invés de i=0. Isso faz com que o loop comece com i igual a 1 e, em seguida, incremente de 2 em 2. No entanto, o que está causando o loop infinito é que a condição de parada i<5 nunca é atingida, já que você está incrementando i com i = i+2, e o valor de i sempre será ímpar (começando em 1 e somando 2 a cada iteração).

Para corrigir e obter a saída esperada de 2, 4 e stop, você deve iniciar o valor de i em 0 e ajustar a condição de parada para que ela permita que o loop seja executado enquanto i for menor que 5. Além disso, é importante garantir que o incremento não ultrapasse a condição de parada. Aqui está o código corrigido:

void main() {
  for(int i = 0; i < 5; i = i + 2) {
    print('Concluí $i voltas');
  }
}

Com essa correção, o loop irá imprimir:

Concluí 0 voltas
Concluí 2 voltas
Concluí 4 voltas

E então irá parar, pois na próxima iteração i seria 6, o que não satisfaz a condição i < 5. Se você deseja começar a contagem a partir de 2, você pode ajustar o valor inicial de i para 2 e a condição de parada para i <= 4:

void main() {
  for(int i = 2; i <= 4; i = i + 2) {
    print('Concluí $i voltas');
  }
}

Isso resultará em:

Concluí 2 voltas
Concluí 4 voltas

Espero que isso resolva o problema que você estava enfrentando. Espero ter ajudado e bons estudos!

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