segunda-feira, 7 de maio de 2012

Continue & Break



   Neste exemplo vemos qual a aplicação do "continue;" neste caso vamos fazer um for de 0 até 20 e quando o valor do "i" for maior que 10 e menor que 15 ele interrompe o ciclo e segue para a próxima execução. Aqui vemos a diferença entre o "continue;" e o "break;".
   O " continue;" passa para a próxima execução do " for ", enquanto o "break;" interrompe a execução do mesmo.

Exemplo com continue

/**
 * @author marco.bidoia@gmail.com
 */
public class ForComContinue {

      public static void main(String[] args) {
           
            for (int i = 0; i <=20; i++){
                  if (i > 10 && i < 15){
                        continue;
                  }
                  System.out.print(i + "-");
            }

      }

}

Resultado da execução acima:
0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 15 - 16 - 17 - 18 - 19 - 20

  Vemos que a execução não nos trouxe os números 11, 12, 13, 14 que são maiores que 10 e menos que 15, ocontinue;"  não interrompe a execução apenas passa para o próximo laço de execução do "for".

  O mesmo exemplo só que agora usamos o "break;" em vez do "continue;".

/**
 * @author marco.bidoia@gmail.com
 */
public class ForComBreak {

      public static void main(String[] args) {
           
            for (int i = 0; i <=20; i++){
                  if (i > 10 && i < 15){
                        break;
                  }
                  System.out.print(i + "-");
            }

      }

}

Resultado da execução acima:
0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10

  Neste caso vemos que quando ele encontrou um número que era maior que 10 e menor que 15 ele interrompe a execução imediatamente. 

  Com estes dois exemplos acima podemos ver a diferença entre o "continue;" e o "break;" que nos trouxeram resultados diferentes sendo utilizados em programas iguais.

sexta-feira, 4 de maio de 2012

Executando um "loop" com "break"


   Temos um "loop" que executa de 0 até 1000 e dentro dele temos uma condição que testa se o resto da divisão de "i" por 99 é igual a 0, se for ele acrescenta 1 a variável "numEncontrados".
   Quando a variável "numEncontrados" for igual ou maior que 5 a repetição é interrompida, para isso usamos o "break;" dentro do bloco de código da condição "if" 
   Quando usamos o "break;" o "loop" é interrompido imediatamente, já com o "continue;" apenas interrompemos a passagem atual do laço e passamos para a execução seguinte.


/**
 * @author marco.bidoia@gmail.com
 */
public class LoopComForAndBreak {

      public static void main(String[] args) {

            int numEncontradso = 0;
           
            for (int i = 0; i < 10000; i++) {
                 
                  if (i % 99 == 0) {
                 
                        System.out.println("Número divisivel por 99 é : " + i);
                        numEncontradso++;
                       
                  }
                 
                  if (numEncontradso >= 5){
                        System.out.println("Já encontrei 5 numeros");
                        break;
                  }
                       
            }

      }

}


O resultado da execução é:



Número divisivel por 99 é : 0
Número divisivel por 99 é : 99
Número divisivel por 99 é : 198
Número divisivel por 99 é : 297
Número divisivel por 99 é : 396
Já encontrei 5 números

   O "break;" seria bem útil se por exemplo estivéssemos procurando um determinado valor em uma lista, colocando um "break;" quando encontrarmos tal valor.