Estruturas de controle em Java
1. Visão geral
No sentido mais básico, um programa é uma lista de instruções. Control structures are programming blocks that can change the path we take through those instructions.
Neste tutorial, vamos explorar estruturas de controle em Java.
Existem três tipos de estruturas de controle:
-
Ramificações condicionais, que usamosfor choosing between two or more paths. Existem três tipos em Java:if/else/else if,ternary operatoreswitch.
-
Loops que são usados paraiterate through multiple values/objects and repeatedly run specific code blocks. Os tipos básicos de loop em Java sãofor,whileedo while.
-
Instruções de ramificação, que são usadas paraalter the flow of control in loops. Existem dois tipos em Java:breakecontinue.
2. If/Else/Else If
A declaraçãoif/else éthe most basic of control structures, mas também pode ser considerada a base da tomada de decisão na programação.
Emboraif possa ser usado sozinho, o cenário de uso mais comum é escolher entre dois caminhos comif/else:
if (count > 2) {
System.out.println("Count is higher than 2");
} else {
System.out.println("Count is lower or equal than 2");
}
Teoricamente, podemos encadear ou aninhar blocos deif/else infinitamente, mas isso prejudicará a legibilidade do código e é por isso que não é aconselhável.
Exploraremos declarações alternativas no restante deste artigo.
3. Operador ternário
Podemosuse a ternary operator como uma expressão abreviada que funciona como uma instruçãoif/else.
Vamos ver nosso exemploif/else novamente:
if (count > 2) {
System.out.println("Count is higher than 2");
} else {
System.out.println("Count is lower or equal than 2");
}
Podemos refatorar isso com um ternário da seguinte maneira:
System.out.println(count > 2 ? "Count is higher than 2" : "Count is lower or equal than 2");
Embora o ternário possa ser uma ótima maneira de tornar nosso código mais legível, nem sempre é um bom substituto paraif/else.
4. Interruptor
Se tivermos vários casos para escolher, podemos usar uma instruçãoswitch .
Vejamos novamente um exemplo simples:
int count = 3;
switch (count) {
case 0:
System.out.println("Count is equal to 0");
break;
case 1:
System.out.println("Count is equal to 1");
break;
default:
System.out.println("Count is either negative, or higher than 1");
break;
}
Três ou mais instruçõesif/else podem ser difíceis de ler. Como uma das soluções alternativas possíveis, podemos usarswitch, como visto acima.
E também tenha em mente queswitch has scope and input limitations que precisamos lembrar antes de usá-lo.
5. rotações
Usamosloops quando precisamos repetir o mesmo código várias vezes em sucessão.
Vejamos um exemplo rápido de tipo de loopsforewhile:
for (int i = 1; i <= 50; i++) {
methodToRepeat();
}
int whileCounter = 1;
while (whileCounter <= 50) {
methodToRepeat();
whileCounter++;
}
Ambos os blocos de código acima chamarãomethodToRepeat 50 vezes.
6. Pausa
Precisamos usarbreak para sair mais cedo de um loop.
Vamos ver um exemplo rápido:
List names = getNameList();
String name = "John Doe";
int index = 0;
for ( ; index < names.length; index++) {
if (names[index].equals(name)) {
break;
}
}
Aqui, estamos procurando um nome em uma lista de nomes e queremos parar de procurar assim que o encontrarmos.
Um loop normalmente seria concluído, mas usamosbreak aqui para causar um curto-circuito e sair mais cedo.
7. Continuar
Simplificando,continuemeans to skip the rest of the loop we’re in:
List names = getNameList();
String name = "John Doe";
String list = "";
for (int i = 0; i < names.length; i++) {
if (names[i].equals(name)) {
continue;
}
list += names[i];
}
Aqui, pulamos o acréscimo denames duplicados na lista.
Como vimos aqui,break andcontinue pode ser útil ao iterar, embora muitas vezes possam ser reescritos com instruçõesreturn ou outra lógica.
8. Conclusão
Neste artigo, aprendemos o que são estruturas de controle e como usá-las para gerenciar o controle de fluxo em nossos programas Java.
Todo o código apresentado neste artigo está disponívelover on GitHub.