Duvida comando while

6 respostas
P

Olá,

uma duvida no comando continue , quando encontra não deveria
ir para while e verificar se o i é menor que 10

Pois no usando o comando for fiz um teste qdo encontra um continue
vai para for testar a condição …

Se alguém puder me ajudar agradeceria…

abs

public static void main(String[] args) {
		// TODO Auto-generated method stub

		int i=1;
		while (i<10) {
		  
		  if (i==5) {
		    continue;    
		  }
		  System.out.println("passou aqui ..."+i);
		  i++;

		}
		System.out.println("saiu ..."+i);
	}


resultado:
passou aqui ...1
passou aqui ...2
passou aqui ...3
passou aqui ...4

6 Respostas

rodrigues.danilo

Boa noite.

Está em loop infinito. Repare que quando compara se é igual a 5, não incrementa i, logo ele sempre será igual a 5 e sempre voltará ao while com o valor 5.

Abs!

jopss

como o amigo de cima falou… o “continue” pára o seu while no meio…

jopss

leandro.anjos

Só pra não deixar duvidas:

Tanto no for quanto no while, se você utilizar o comando continue eles retonam para o teste condicional, porém no for o incremento esta “dentro do proprio teste” enquanto isso no while o incremento é dentro do código, por isso deve ser incrementado antes do continue.

Se você deseja sair do laço sem incremento utilize o break.

claudsan

Como você colocou um continue ele não passa na linha

i++;

com isso ele nao incrementa o seu laço, ficando infinito.
coloque isso que você vai ver:

if (i==5) {   
            continue;       
          System.out.println("passou aqui ..."+i);   
          }

vai ficar printando "passou aqui… 5 "…

c2caio

a instrução continue pula a atual repetição dos loops for, while e do-while. como vc incrementa a variável de teste só depois do continue, ela nunca vai ser incrementada. parece que vc quer usar o continue para não imprimir o número 5. vc pode inicializar i com 0 e colocar a condição de incremento antes do if.

rafdutra

Amigo, uma solução seria colocar o i incrementando antes do seu comando continue!!

mais ou menos assim

int i = 0;
while (i<10) {
    i++;
    if(i == 5)
        continue;
    System.out.println("passou aqui ..."+i);
}
System.out.println("saiu ..."+i);

Ai ele não entra em loop infinito mais!!

Criado 5 de maio de 2008
Ultima resposta 6 de mai. de 2008
Respostas 6
Participantes 7