quinta-feira, 15 de março de 2012

Estruturas de Repetição I

Nesta lição vamos ver a estrutura de repetição for. A estrutura de repetição for inicia de um valor inicial e vai até o valor predefinido. Como funciona:

for (INICIALIZAÇÃO DE VARIÁVEIS; CONDIÇÃO; INCREMENTO){
      INSTRUÇÕES
}

Na inicialização de variáveis podemos inicializar nossas variáveis participantes do for, mas na imensa maioria apenas inicializamos somente uma variável.
Na condição podemos colocar a condição de parada do for, estando verdadeira esta condição o laço continua executando as estruções repetidas vezes.
No incremento podemos incrementar as variáveis participantes do for, como a inicialização apenas incrementamos apenas uma variável.

for (int i=1; i<=5; i++){
instruções
}
 No exemplo acima i é nossa variável inicializada com 1 que será incrementada em +1 toda vez que as instruções do for tiverem sido executadas. Qual o intervalo de i<=5?

Pense...Reflita...Analise...Observe...
Pense...Reflita...Analise...Observe...

Risos! Para começar ver qual o intervalo de i<=5, precisamos identificar i que é igual a 1 e que a cada vez que as instruções são executadas soma-se 1 a i. O intervalo = {1, 2, 3, 4, 5}. 
 Então, teremos as instruções executadas 5 vezes. 

E se o incremento ser i = i+2? O intervalo = {1, 3, 5}.
As instruções serão executadas 3 vezes.

Well, é necessário ter bastante noção de como usar o for para não calcular errado, quantas vezes será executadas as instruções. Você deve saber que dispõe de outros recursos, no qual especificará como essas instruções serão executadas. 

Como: 
  • if - somente as condições verdadeiras serão executadas.
  • else - caso o if sendo falso, else é executado.
  • break - dentro de um if, se determinada condição ser verdadeira, executa break, que sai do laço, independente da condição do for ser satisfeita.

Prática

Para começar, veremos um pequeno programa que faz a contagem de 1 a 10 com o for:

//Exemplo simples de for no intervalo de 1 a 10.
//O sysout é executado 10 vezes, sempre com o valor de i atualizado.
public class forCont {
    public static void main(String[] args) {
        System.out.println("Contagem de 1 a 10!");
        for (int i= 1; i <= 10; i++) {
            System.out.println(i);
        }
    }
}
 No exemplo seguinte, quero que sejam mostrados todos os números entre a e b:

import java.util.Scanner;

public class forInter {
    public static void main(String[] args) {
        int a, b;
        Scanner input = new Scanner(System.in);

//Leitura de a e b.
        System.out.println("Digite um número(a): ");
        a = input.nextInt();
        System.out.println("Digite um número(b): ");
        b = input.nextInt();

//Ocorre que a pode ser maior que b, menor que b, ou igual a b, por isso o if-else
//Se a é maior que b, b não pode ser contado com seu valor original, exemplo: a = 7, b=4.
//b++ ou  b= b+1, b é incializado dessa maneira b será 5, e o intervalo = {5, 6}.
        if (a > b) {
            for (b++; a > b; b++) {
                System.out.println(b);
            }
        } 

//Se b é maior que a, procede como b, acima.
            else if (a < b) {
            for (a++; a < b; a++) {
                System.out.println(a);
            }
        } 

//Se a é igual a b, uma mensagem ao usuário diz:  "Não existe números inteiros entre a e b."
            else if (a == b) {
            System.out.println("Não existe números inteiros entre a e b.");
        }
    }
}
 Now, exemplo abaixo, Vamos calcular a fatorial de um número:

import java.util.Scanner;

public class forFatorial {
    public static void main(String[] args) {
        int numero;
        Scanner input = new Scanner(System.in);
//Leitura do número
        System.out.println("Digite um número: ");
        numero = input.nextInt();
//Criação de variável fat inicializada com 1
        int fat = 1;
//i=1, se na leitura digitar 5, i será incrementado até 5. então fat = 1x2x3x4x5.
//Há como fazer o processo inverso, fat = 5x4x3x2x1.
//Veja  ---->>>         for (int i = numero; i >= 1; i--) {

        for (int i = 1; i <= numero; i++) {
            fat = fat * i;
        }
        System.out.println("A fatorial do número " + numero + " é: " + fat);
    }
}

Queria trazer algum exemplo com String, neste exemplo o programa pede o seu nome, e é contado quantos caracteres tem no seu nome. Foi usado o length() que significa comprimento. Vejamos:

import java.util.Scanner;

public class forName {
    public static void main(String[] args) {
        String nome;
        int tam;
        Scanner input = new Scanner(System.in);
//Leitura do nome
        System.out.println("Digite seu nome: ");
        nome = input.next();
//o inteiro tam recebe o comprimento de nome.
        tam = nome.length();
        System.out.println("");
//Uma * para cada caractere
        for (int i = 1; i <= tam; i++) {
            System.out.print("*");
        }
        System.out.println("\n" + nome);
        for (int i = 1; i <= tam; i++) {
            System.out.print("*");
        }
    }

}

Exemplo: Digite seu nome: Renan
O programa fará isso:

*****
Renan
*****
Espero que tenham compreendido tanto do funcionamento da estrutura de repetição, bem como de sua implementação.

Na próxima lição iremos estudar mais as Estruturas de Repetição II. Bons Estudos!

Nenhum comentário:

Postar um comentário

Related Posts Plugin for WordPress, Blogger...