Java

Estruturas condicionais e estruturas de repetição em Java

Depois de conhecermos mais sobre variáveis e constantes no Java, veremos neste artigo as estruturas condicionais e estruturas de repetição.

há 3 anos 2 meses

Formação Desenvolvedor Java
Conheça a formação em detalhes

Depois de conhecermos mais sobre variáveis e constantes no Java, veremos neste artigo as estruturas condicionais e estruturas de repetição. Essas estruturas são fundamentais e vem para nos ajudar no reaproveitamento de código.

Cada sistema pode fazer uso de quantas combinações de estruturas de repetição e/ou estruturas de decisão forem necessárias.

Estruturas condicionais

As estruturas condicionais possibilitam ao programa tomar decisões e alterar o seu fluxo de execução. Isso possibilita ao desenvolvedor o poder de controlar quais são as tarefas e trechos de código executados de acordo com diferentes situações, como os valores de variáveis.

As estruturas condicionais geralmente analisam expressões booleanas e, caso estas expressões sejam verdadeiras, um trecho do código é executado. No caso contrário, outro trecho do código é executado.

If/else

O if/else é uma estrutura de condição em que uma expressão booleana é analisada. Quando a condição que estiver dentro do if for verdadeira, ela é executada. Já o else é utilizado para definir o que é executado quando a condição analisada pelo if for falsa. Caso o if seja verdadeiro e, consequentemente executado, o else não é executado.

O if pode ser utilizado em conjunto com o else ou até mesmo sozinho, caso necessário.

Abaixo, temos um exemplo onde o if é utilizado em conjunto com o else.

package br.com.treinaweb;

public class Exemplo {
	
    public static void main(String[] args) {
        int resposta = 10;
        if (resposta == 10) {
            // Se a variável for igual a 10, a frase abaixo será escrita
            System.out.println(“Você acertou!”);
        } else {
            // Caso contrário, a frase abaixo será escrita
            System.out.println(“Você errou!”);
        }
    }
	
}

Java - Fundamentos
Curso Java - Fundamentos
Conhecer o curso

Também podemos utilizar somente o if, não definindo um fluxo alternativo.

package br.com.treinaweb;

public class Exemplo {
	
    public static void main(String[] args) {
        int resposta = 10;
        if (resposta == 10) { 
            // Se a variável for igual a 10, a frase abaixo será escrita
            System.out.println(“Você acertou!”);
        }
        // Se a variável não for igual a 10, nenhuma frase será exibida
    }
	
}

Ainda é possível encadear múltiplas estruturas if/else caso necessário.

package br.com.treinaweb;

public class Exemplo {
	
    public static void main(String[] args) {
        int resposta = 10;
        if (resposta == 10) { 
            System.out.println(“A resposta é exatamente 10!”);
        } else if (resposta > 10) {
            System.out.println(“A resposta é maior que 10!”);
        } else {
            System.out.println(“A resposta é menor que 10!”);
        }
    }
	
}

Switch/case

A estrutura condicional switch/case vem como alternativa em momentos em que temos que utilizar múltiplos ifs no código. Múltiplos if/else encadeados tendem a tornar o código muito extenso, pouco legível e com baixo índice de manutenção.

O switch/case testa o valor contido em uma variável, realizando uma comparação com cada uma das opções. Cada uma dessas possíveis opções é delimitada pela instrução case.

Podemos ter quantos casos de análise forem necessários e, quando um dos valores corresponder ao da variável, o código do case correspondente será executado. Caso a variável não corresponda a nenhum dos casos testados, o último bloco será executado, chamado de default (padrão).

A análise de cada caso também precisa ter seu final delimitado. Essa delimitação é feita através da palavra break.

package br.com.treinaweb;

public class Exemplo {
	
    public static void main(String[] args) {
        int mes = 2;
        switch (mes) {
            case 1:
                System.out.println(“O mês é janeiro”);
                break;
            case 2:
                System.out.println(“O mês é fevereiro”);
                break;
            case 3:
                System.out.println(“O mês é março”);
                break;
            case 4:
                System.out.println(“O mês é abril”);
                break;
            case 5:
                System.out.println(“O mês é maio”);
                break;
            case 6:
                System.out.println(“O mês é junho”);
                break;
            case 7:
                System.out.println(“O mês é julho”);
                break;
            case 8:
                System.out.println(“O mês é agosto”);
                break;
            case 9:
                System.out.println(“O mês é setembro”);
                break;
            case 10:
                System.out.println(“O mês é outubro”);
                break;
            case 11:
                System.out.println(“O mês é novembro”);
                break;
            case 12:
                System.out.println(“O mês é dezembro”);
                break;
            default:
                System.out.println(“Mês inválido”);
                break;
        }
    }
	
}

Estruturas de repetição

Estruturas de repetição, também conhecidas como loops (laços), são utilizadas para executar repetidamente uma instrução ou bloco de instrução enquanto determinada condição estiver sendo satisfeita.

As principais estruturas de repetição na maioria das linguagens são o for e o while.

For

O for é uma estrutura de repetição na qual seu ciclo será executado por um tempo ou condição pré-determinados e em uma quantidade de vezes que determinamos.

O for possui a seguinte estrutura:

for (<variável de controle>, <análise da variável de controle>, <incremento da variável de controle>) {
    // Código a ser executado
}

Quando utilizamos o for, precisamos de uma variável para auxiliar a controlar a quantidade de repetições a serem executadas. Essa variável é chamada de variável de controle e é declarada no primeiro argumento do for.

O segundo argumento do for é utilizado para definir até quando o for será executado. Geralmente, trata-se de uma condição booleana em cima da variável de controle.

O terceiro argumento indica o quanto a variável de controle será modificada no final de cada execução dentro do for.

Veja o exemplo abaixo:

package br.com.treinaweb;

public class Exemplo {
	
    public static void main(String[] args) {
        for (int i = 0; i <= 10; i++) {
            System.out.println(“A variável i agora vale “ + i);
        }
    }
	
}

A execução desse código causaria a seguinte saída:

A variável i agora vale 0 A variável i agora vale 1 A variável i agora vale 2 A variável i agora vale 3 A variável i agora vale 4 A variável i agora vale 5 A variável i agora vale 6 A variável i agora vale 7 A variável i agora vale 8 A variável i agora vale 9 A variável i agora vale 10

Isso acontece porque:

• A variável de controle, que chamamos de “i”, tem seu valor inicial como 0;

• No segundo bloco, onde escrevemos “i <= 10”, estamos dizendo que o conteúdo do for será executado enquanto o valor de i for menor ou igual a 10;

• Com o terceiro bloco definido como “i++”, estamos dizendo que, no fim de cada execução do for, o conteúdo de “i” será incrementado em 1 unidade. Isso quer dizer que, no fim da primeira execução, i irá de 0 para 1; na segunda execução, irá de 1 para 2, e assim por diante;

• Com isso, o conteúdo do for será executado por 11 vezes, já que o i é iniciado em 0. A saída do código acima mostra que a mensagem foi escrita por 11 vezes, onde o “i” variou de 0 até 10.

Um ponto importante sobre o for é que, por causa da utilização da variável de controle, geralmente ele é utilizado quando sabemos exatamente quantas vezes queremos repetir a execução do trecho de código.

While

O while também é uma estrutura de repetição, assim como o for. A diferença entre ambas é que, enquanto usamos o for quando geralmente conhecemos a quantidade de vezes que o trecho de código deverá ser repetido, nós utilizamos o while quando não sabemos exatamente quantas vezes o código será repetido.

O while possui a seguinte estrutura:

while (<condição>) {
    // Trecho de código a ser repetido
}

Perceba que a condição para interrupção da repetição do trecho dentro do while se dá através de uma condição booleana.

Abaixo, temos um exemplo do while. Neste exemplo, é pedido ao usuário que tente adivinhar o número. Enquanto o usuário não acerta o número, é pedido para que o usuário digite o valor que ele acha que é o correto. Perceba que nós temos um trecho de código que é sempre repetido, que é o pedido do número para o usuário. Mas, não sabemos exatamente quando o usuário vai acertar este número, ou seja, não sabemos exatamente quantas vezes o trecho de código será repetido. Nessa situação, o while é a estrutura de repetição mais adequada.

package br.com.treinaweb;

import java.util.Scanner;

public class Exemplo {
	
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int numero = -1;
        while (numero != 10) { 
// enquanto a variável não for 10, o trecho de código será repetido
            System.out.println(“Digite um número: “);
            numero = in.nextInt();
            if (numero == 10) {
                System.out.println(“Você acertou!“);
            } else {
                System.out.println(“Você errou :(“);
            }
        }
    }
								   
}

Se você quer conhecer mais sobre essa linguagem, não se esqueça de acessar nosso Guia da linguagem Java. Te esperamos lá :)

Autor(a) do artigo

Marylene Guedes
Marylene Guedes

Responsável pelo sucesso do cliente na TreinaWeb. Graduada em Gestão de Tecnologia da Informação pela FATEC Guaratinguetá, além de estudante de UX/UI.

Todos os artigos

Artigos relacionados Ver todos