Estruturas condicionais e estruturas de repetição em 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.
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 entra em execução. No caso contrário, outro trecho do código começará a funcionar.
If/else
O if/else é uma estrutura de condição em que uma expressão booleana teve análise. Quando a condição que estiver dentro do if for verdadeira, ela tem funcionamento. Já o else tem seu uso para definir o que é execução quando a condição tem análise pelo if for falsa. Caso o if seja verdadeiro e, consequentemente executável, o else não tem funcionamento.
O if pode ter seu uso em conjunto com o else ou até mesmo sozinho, caso necessário.
Abaixo, temos um exemplo onde o if em uso neste conjunto com o else.
package br.com.cafecodificado;
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!”);
}
}
}
Também podemos utilizar somente o if, não definindo um fluxo alternativo.Copiar
package br.com.cafecodificado;
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.cafecodificado;
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, contudo realizando uma comparação com cada uma das opções. Cada uma dessas possíveis opções é vinculativa assim pela instrução case.
Podemos ter quantos casos de análise forem necessários e, ademais quando um dos valores corresponder ao da variável, o código do case correspondente terá execução. Caso a variável não corresponda a nenhum dos casos com testes, assim então o último bloco terá execução, chamando-se de default (padrão).
A análise de cada caso também precisa ter seu final delimitado. A limitação vem através da palavra ”break”.
package br.com.cafecodificado;
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), tem seu uso 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 pode ter execução 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 sobretudo de uma variável para auxiliar a controlar a quantidade de repetições que terão execução. Essa variável chama-se de variável de controle e tem declaração no primeiro argumento do for.
Argumentos
O segundo argumento do for tem sua utilização para definir até quando o for terá execução. 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 terá modificação no final de cada execução dentro do for.
Veja o exemplo abaixo:
package br.com.cafecodificado;
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 e assim por diante.
Isso acontece porque:
– 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;
• 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;
• O conteúdo do for tem funcionamento por 11 vezes, já que o i tem inicialização em 0. Ao sair do código acima mostra que a mensagem foi escrita por 11 vezes, onde o “i” variou de 0 até 10.
Sobretudo um ponto importante sobre o for é que, por causa da utilização da variável de controle, geralmente ele tem seu uso quando sabemos exatamente quantas vezes queremos repetir a execução do trecho de código.
While
Sobretudo 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á ter repetição, nós utilizamos o while quando não sabemos exatamente quantas vezes o código irá repetir.
O while possui a seguinte estrutura:
while (<condição>) {
// Trecho de código a ser repetido
}
Perceba que assim a condição para interrupção da repetição do trecho dentro do while se dá através de uma condição booleana.
Primeiramente 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.cafecodificado;
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 :(“);
}
}
}
}
Leia também “Por que investir numa carreira tecnológica?“