Mostrando postagens com marcador For. Mostrar todas as postagens
Mostrando postagens com marcador For. Mostrar todas as postagens

segunda-feira, 12 de novembro de 2012

Usando While e if para obter a sequência de fibonacci

Abaixo um exemplo de uso de while e if, o objetivo é obtermos a sequência de Fibonacci que seja menor que 100.


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

      public static void main(String[] args) {
           
            int fibonacci = 0;
            int nmenos1 = 1;
            int nmenos2 = 0;
           
            while (true) {
            fibonacci = nmenos1 + nmenos2;
            if (fibonacci > 100) {
                  break;
            }
            nmenos2 = nmenos1;
            nmenos1 = fibonacci;
            System.out.println(fibonacci);
            }

      }

}

O resultado é o seguinte:
1
2
3
5
8
13
21
34
55
89

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. 


quarta-feira, 25 de abril de 2012

Loop utilizando For

   Neste exemplo de laço utilizando o "for" fazemos a inicialização, teste de execução e o incremento da variável de controle já no inicio do código.
   Exemplo

     for (inicializacao; condicao; incremento){
        Codigo;
     }


   No caso abaixo a utilização do "for" é idêntica a que usamos no post anterior (Estrutura de repetição) onde usamos o "while" para realizarmos o "loop".


/**
 * @author marco.bidoia@gmail.com
 */

public class LoopComFor {

      public static void main(String[] args) {

            for (int i = 0; i < 10; i++){
                  System.out.println("O valor de i é: " + i);
            }

      }

}



O resultado da execução do programa é:

O valor de i é: 0
O valor de i é: 1
O valor de i é: 2
O valor de i é: 3
O valor de i é: 4
O valor de i é: 5
O valor de i é: 6
O valor de i é: 7
O valor de i é: 8
O valor de i é: 9



   Poderíamos também tratar o incremento dentro do código conforme exemplo:

for (int i = 0; i < 10;){
      System.out.println("O valor de i é: " + i);
      // Incremento da variável em outra parte do código
      i++;
}


   Neste caso o incremento da variável "i" é feito no bloco da execução e não na primeira linha onde se inicia o  laço "for", mas mesmo assim o resultado obtido é o mesmo.