instruções rotuladas - continue

6 respostas
LPJava
pessoal olha que duvida eu fiquei em instrução rotulada o primeiro codigo deu para entender pq o segundo for eh true entao o continue ele pula a instrução apos dele mais eu mudei o meu rotulo da segunda sintaxe e ele imprimiu umas loucuras vejam...
class RotCont{
	public static void main(String args[]){
		out:
		for(int i=0; i<3;i++){
				
			for(int z=0;z<3;z++){
				System.out.println("hello");
				continue out;
			}
			
			System.out.println("rotulo");
		}//fim do for externo
		System.out.println("fim do progr");
	}
}
o resultado q nao entendi
class RotCont{
	public static void main(String args[]){
		
		for(int i=0; i<3;i++){
				out:
			for(int z=0;z<3;z++){
				System.out.println("hello");
				continue out;
			}
			
			System.out.println("rotulo");
		}//fim do for externo
		System.out.println("fim do progr");
	}
}
alguem pode me explicar pq.. o continue eh um comando que me confude.. qdo a instrucao aonde esta o continue for true o que estiver apos dela nao eh executado confere? seria o codigo abaixo:
class RotCont{
	public static void main(String args[]){
		
		for(int i=0; i<3;i++){
				out:
			//se isso for nada aqui eh impresso 
			for(int z=3;z<3;z++){
				System.out.println("hello");
				continue out;
			}
			
			System.out.println("rotulo");
		}//fim do for externo
		System.out.println("fim do progr");
	}
}

eh confuso instrucoes rotuladas...

6 Respostas

acopiara
class RotCont{
 	public static void main(String args[]){
 		
 		for(int i=0; i<3;i++){
 				out:
 			for(int z=0;z<3;z++){
 				System.out.println("hello");
 				continue out;
 			}
 			
 			System.out.println("rotulo");
 		}//fim do for externo
 		System.out.println("fim do progr");
 	}
 }

O codigo acima é o mesmo desse:

class RotCont{
 	public static void main(String args[]){
 		
 		for(int i=0; i<3;i++){
 			
 			for(int z=0;z<3;z++){
 				System.out.println("hello");
 		
 			}
 			
 			System.out.println("rotulo");
 		}//fim do for externo
 		System.out.println("fim do progr");
 	}
 }

pq o rotulo esta para o laco interno. O continue so vai pular para a proxima interacao do laco. O primeiro for que estiver abaixo do rotulo é o que vai ser modificado pela chamada do break ou continue.

Valew

LPJava

nao entendi direitp :?:

acopiara

A interacao do laco que vai ser modificado na chamada ao rotulo vai ser daquele laco que estiver logo abaixo da declaracao do rotulo.

bebad

é bro,
quando voce cria um laço for, oque ele faz??
ele fica fazendo loops até que a instrução seja menor que determinado valor que você setou correto ??

Quando voce coloca um Break, ele escapa do laço e para tudo.
Quando voce coloca um continue, ele pula do laco e vai para a proxima instrução fora do laco e continua interpretando o codigo, pelo que eu entendi é isso,

imagina q vc coloca dentro de um

for(int i=0;i<5;i++){
  while(true){

  continue;
  }
//apos o continue ele vai entrar novamente no for, e novamente no while, 
//por 5 veses até finalizar o laço for.
//agora se fosse 1 break, o codigo iria sair do while e do for, 
//praticamente congelando as duas instruções de loop.

}

Eu tambem to aprendendo, entao se tiver falando merda nao vacilem em me corrigir ok?

Att.

ACDias

for(int i=0;i&lt5;i++) { if(i==2) continue; system.out.print(i+"\n"); }O 2 não será impresso pois quando ele encontra o continue, é incrementada uma interação. Nesse caso, quando o i for igual a 2 ele voltará no for incrementará o i e continuará executando.

LPJava

hum… saquei galera… continua == pula se for true a instrução abaixo …

Criado 31 de janeiro de 2007
Ultima resposta 1 de fev. de 2007
Respostas 6
Participantes 4