Aprenda Java

  • Página Inicial
  • Contato!
  • Tudo sobre Java Parte 1!
  • Tudo sobre Java Parte 2!
  • Tudo sobre Java Parte 3!
  • Tudo sobre Java Parte 4!
  • Tudo sobre Java Parte 5!
  • Tudo sobre Java Parte 6!
  • Tudo sobre Java Parte 7!
  • Tudo sobre Java Parte 4

    Estruturas de Repetição - Parte 1

    Uma das formas de criar repetições em Java é com a estrutura while (enquanto).

    A repetição while realiza um teste lógico no início do loop, e cada vez que o teste retornar verdadeiro, os comandos associados ao laço são executados. Se retornar falso, o laço é encerrado e o processamento volta para o fluxo principal do programa.

    Veja um exemplo de repetição while em Java:

    
    public static void main(String[] args) {
        int cc = 1;
    
        while(cc <= 20) {
            System.out.println("Cambalhota " + cc);
            cc++;
        }
    } 
    
    

    Temos também a opção continue para não interromper a execução de um código ao não mostrar determinados valores:

    
    public static void main(String[] args) {
        int cc = 0;
        
        while(cc < 10) {
            cc++;
            if(cc == 5 || cc == 7) {
                continue;
            }
            System.out.println("Cambalhota " + cc);
        }
    } 
    
    

    E temos também o break para interromper (não confundir com o break do switch e case). Veja um exemplo:

    
    public static void main(String[] args) {
        int cc = 0;
        
        while(true) {
            cc++;
            if(cc == 2 || cc == 3) {
                continue;
            }
            else if(cc == 7) {
                break;
            }
            System.out.println("Cambalhota " + cc);
        }
    } 
    
    

    Vamos criar um programa Java em Swing que conte números. Esse é o código do clicar botão:

    
    int cc = 1;
    String contagem = "";
    
    while(cc <= 10) {
        contagem += cc + " ";
        cc++;
    }
    
    lblCont.setText(contagem);
    
    

    Vamos fazer um exercício, um fatorial em Java Swing. Nesse vamos colocar o evento change no componente numérico. Veja o código:

    
    int num = Integer.parseInt(numFat.getValue().toString());
    int fat = 1;
    int cont = num;
    String resul = "";
    
    while(cont >= 1) {
        fat *= cont;
        cont--;
        if(cont >= 1) {
            resul += (cont + 1) + " x ";
        }
        else {
            resul += (cont + 1);
        }
    }
    lblFat.setText(Integer.toString(fat));
    lblCont.setText(resul);
    
    

    Estruturas de Repetição - Parte 2

    Outra forma de criar repetição é a do while, significando repita. Diferente do while, a do while é colocada no final, praticamente o contrário dela. Veja um exemplo:

    
    int cc = 1;
    do {
        System.out.println("Cambalhota:" + cc);
        cc++;
    }
    while(cc < 4);
    
    

    Veja um exemplo mais complexo:

    
    int n, s = 0;
    String resp;
    Scanner teclado = new Scanner(System.in); // Adicionar Importação.
    do {
        System.out.print("Digite um número: ");
        n = teclado.nextInt();
        s += n;
        System.out.print("Quer continuar? [S/N] ");
        resp = teclado.next();
    }
    while(resp.equals("s"));
    System.out.println("A soma de todos os valores é " + s);
    
    

    PS: Pode ver que, por esse fator, o comando do será executado, e só depois ele testará, independente do valor recebido. O que garante que pelo menos uma vez, o bloco de comandos é executado.

    Vamos criar um programa que criará janelas automaticamente, nesse caso, a classe principal permanecerá marcada. Na importação, colocaremos javax.swing.JOptionPane para isso.

    Para exibir a mensagem, usamos JOptionPane.showMessageDialog(), assim:

    
    JOptionPane.showMessageDialog(null, "Olá Mundo!");
    
    

    Para mudar o que está escrito em cima, poderíamos fazer assim:

    
    JOptionPane.showMessageDialog(null, "Olá Mundo!", "Boas Vindas", JOptionPane.INFORMATION_MESSAGE);
    
    

    PS: No lugar do INFORMATION_MESSAGE, podemos usar WARNING_MESSAGE e ERROR_MESSAGE.

    Para perguntas, podemos fazer assim:

    
    int pergunta = JOptionPane.showConfirmDialog(null, "Escolha uma opção", "Pergunta", JOptionPane.YES_NO_OPTION);
    
    if(pergunta == JOptionPane.YES_OPTION) {
        JOptionPane.showMessageDialog(null, "Escolheu o sim!", "Info", JOptionPane.INFORMATION_MESSAGE);
    }
    else {
        JOptionPane.showMessageDialog(null, "Escolheu o não!", "Info", JOptionPane.INFORMATION_MESSAGE);
    }
    
    

    Para pegar valores, usamos o JOptionPane.showInputDialog(), dessa forma:

    
    JOptionPane.showInputDialog(null, "Informe um número:", "Entrada", JOptionPane.QUESTION_MESSAGE);
    
    

    Veja um exemplo com mais de uma janela:

    
    int num = Integer.parseInt(JOptionPane.showInputDialog(null, "Informe um número:", "Entrada", JOptionPane.QUESTION_MESSAGE));
    JOptionPane.showMessageDialog(null, "Você digitou o valor " + num, "Info", JOptionPane.INFORMATION_MESSAGE);
    
    

    Veja outro exemplo aplicado com a repetição:

    
    public static void main(String[] args) {
        int num;
        do {
            num = Integer.parseInt(JOptionPane.showInputDialog(null, "Informe um número (valor 0 interrompe):", "Entrada", JOptionPane.QUESTION_MESSAGE));
        }
        while(num != 0);
    }  
    
    

    Veja um exemplo no qual mostramos os resultados de números somados:

    
    int num, soma = 0;
    do {
        num = Integer.parseInt(JOptionPane.showInputDialog(null, "<html>Informe um número<br/><i>(valor 0 interrompe)</i>:</html>", "Matemática", JOptionPane.QUESTION_MESSAGE));
        soma += num;
    }
    while(num != 0);
    JOptionPane.showMessageDialog(null, "<html>Resultado Final!<hr/>Somatório vale " + soma + "</html>", "Info", JOptionPane.INFORMATION_MESSAGE);
    
    

    Para mostrar os valores passados (total, pares, ímpares, acima de 100 e média, faremos isso):

    
    int num, soma = 0;
    int cont = 0;
    int par = 0;
    int impar = 0;
    int cent = 0;
    float media = 0;
    do {
        num = Integer.parseInt(JOptionPane.showInputDialog(null, "<html>Informe um número<br/><i>(valor 0 interrompe)</i>:</html>", "Matemática", JOptionPane.QUESTION_MESSAGE));
        soma += num;
        cont += 1;
        if(num == 0) {
            cont -= 1;
            break;
        }
        else if(num % 2 == 0) {
            par += 1;
        }
        else {
            impar += 1;
        }
        
        // Esse é outro Condicional.
        
        if(num >= 100) {
            cent += 1;
        }
        
        media = soma / cont;
    }
    while(true);
    JOptionPane.showMessageDialog(null, "<html>Resultado Final!<br/><hr/>Somatório vale " + soma + "<br/>Total de Valores: " + cont + "<br/>Total de Pares: " + par + "<br/>Total de Ímpares: " + impar + "<br/>Valores Acima de 100: " + cent + "<br/>Média dos Valores: " + media + "</html>", "Resultado", JOptionPane.INFORMATION_MESSAGE);