Pergunta envolvendo for e continue

Hello World, boa tarde GUJ, este é o meu primeiro post :stuck_out_tongue:

vou postar o código-fonte do arquivo <MeuPrograma.java>

public class MeuPrograma
{
	
	public static void main(String[] argumentos)
	{
	
	
		int valorDigitadoPeloUsuario = 100;
		
		
		for (int loop = 0 ; loop <= 20 ; loop++)
		{
			
			if (loop % 19 == 0)
			{
		
				System.out.println("TCHARAM");			
					
				continue;
		
			}
			
			System.out.println("Hoooy" + loop);
			
		}  
	
	
	}
	
}

agora se eu mudar uma linha de posição, alí depois do continue o programa dá erro…

gostaria de saber, por qual motivo isso ocorre, por favor :smiley:

public class MeuPrograma
{
	
	public static void main(String[] argumentos)
	{
	
	
		int valorDigitadoPeloUsuario = 100;
		
		
		for (int loop = 0 ; loop <= 20 ; loop++)
		{
			
			if (loop % 19 == 0)
			{
		
					
					
				continue;
		
				System.out.println("TCHARAM");	
		
			}
			
			System.out.println("Hoooy" + loop);
			
		}  
	
	
	}
	
}

[quote=LeandroSantanaDiniz]Hello World, boa tarde GUJ, este é o meu primeiro post :stuck_out_tongue:

vou postar o código-fonte do arquivo <MeuPrograma.java>

public class MeuPrograma
{
	
	public static void main(String[] argumentos)
	{
	
	
		int valorDigitadoPeloUsuario = 100;
		
		
		for (int loop = 0 ; loop <= 20 ; loop++)
		{
			
			if (loop % 19 == 0)
			{
		
				System.out.println("TCHARAM");			
					
				continue;
		
			}
			
			System.out.println("Hoooy" + loop);
			
		}  
	
	
	}
	
}

agora se eu mudar uma linha de posição, alí depois do continue o programa dá erro…

gostaria de saber, por qual motivo isso ocorre, por favor :smiley:

[code]
public class MeuPrograma
{

public static void main(String[] argumentos)
{


	int valorDigitadoPeloUsuario = 100;
	
	
	for (int loop = 0 ; loop <= 20 ; loop++)
	{
		
		if (loop % 19 == 0)
		{
	
				
				
			continue;
	
			System.out.println("TCHARAM");	
	
		}
		
		System.out.println("Hoooy" + loop);
		
	}  


}

}
[/code][/quote]

O continue faz com que você volte a executar o for, logo qualquer coisa abaixo dele, será ignorado, claro que as chaves delimitam isso.

Assim como o break, mas em vez de pular para o inicio do for, ele o para, caindo pra fora.

Entendeu?

[quote]O continue faz com que você volte a executar o for, logo qualquer coisa abaixo dele, será ignorado, claro que as chaves delimitam isso.

Assim como o break, mas em vez de pular para o inicio do for, ele o para, caindo pra fora.

Entendeu?

[/quote]

Concordo com vc, a linha dps do continue deveria ser ignorada, porém dá erro… xD

gostaria de saber o motivo … :smiley:

Vai apresenta o seguinte erro unreachable statement, pois vc não pode ter um trecho que código que nunca vai ser executado. Ou seja o programa nunca vai executar o comando System.out.println(“TCHARAM”); O mesmo acontece com o break.

Okay, obrigado gente !

Ajudaram bastante

O motivo foi o que tinorberto comentou. Nunca será passado por lá.
Mesmo caso para isso abaixo:

if (true){
   System.out.println("Oi");
}else{
   System.out.println("Tcharam??!");
}

Pelo seu segundo código quando o resto do loop dividido por 19 for igual a 0 ele não vai fazer nada pois, ele via entrar executar o continue e não mostrará a mensagem. Para o segundo código o if e tudo dentro dele não fará nada.

    if (loop % 19 == 0)  
            {  
          
                      
                      
                continue;  
          
                System.out.println("TCHARAM");    
          
            }