Certa vez, Mark Zuckerberg notou que os computadores são realmente bons em repetir comandos. Não é simples para um ser humano, estamos ficando cansados de repetir a mesma coisa muitas vezes seguidas, mas um computador pode fazer isso milhões e bilhões de vezes e nunca se cansar. Se você tentar enviar saudações a todos os usuários do Facebook, não há humano que tenha dias suficientes para fazê-lo. No entanto, você pode criar um computador para resolver essa tarefa escrevendo algumas linhas de código. É assim que os loops funcionam. Eles nos permitem não repetir as mesmas ações rotineiras. O loop mais popular em Java é o chamado loop definido ou loop for.
Como escrever um loop for em Java? For loop em geral
For loop executa algumas instruções por um determinado número de vezes. Por exemplo, escrever cinquenta vezes “eu não devo ser assim, ho-ho, ho” ou enviar convites para todos os seus amigos são tarefas típicas desse tipo de loop. A sintaxe da versão mais comum do loop for:for ([counter initialization]; [checking conditions]; [changing of the counter])
{
// statements
}
A expressão de inicialização é executada uma vez, então a condição é avaliada, que deve ser uma expressão booleana.
- Quando o loop começa, as inicializações são executadas.
- Quando as condições são avaliadas como falsas, nosso loop para de funcionar.

Como usar o loop for em Java. Exemplo simples.
Aqui está um exemplo específico de loop for de Java. Vamos escrever dez vezes "Olá!" String cada vez que seria da nova linha com um número desta linha. Devemos obter a próxima saída:- Olá!
- Olá!
- Olá!
- Olá!
- Olá!
- Olá!
- Olá!
- Olá!
- Olá!
- Olá!
public class ForExample {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println(i + 1 + ". Hello!");
}
}
}
Como funciona?
Etapa 1. Contador i = 0. O loop verifica nossa condição, i << 10, portanto, as instruções do loop são executadas. Imprime a frase "1. Olá!". 1 é uma string i + 1 (porque contamos do zero, mas a primeira linha ainda é a primeira). O contador i é incrementado. Agora, i = 1. Etapa 2. Contador i = 1. i < 10, então temos uma frase "2. Olá!" e i + 1 = 2. … Etapa 10. Contador i = 9, temos "10. Olá!" e i é incrementado para 10. Etapa 11. Contador i = 10. i < 10 ? Não, é falso. Portanto, o loop é encerrado.
Loop while e loop for: diferenças e semelhanças
Em Java, o loop indefinido ou loop while é executado continuamente se a condição booleana se tornar verdadeira. A sintaxe do loop while:while (boolean condition)
{
loop statements...
}
Muitas vezes você pode escolher qual loop deseja usar. Às vezes eles estão muito próximos e você pode usar os dois. Por exemplo, aqui está o código para a mesma tarefa (escrever dez vezes "Olá!" com um número da linha) escrita com loop while:
public class ForAndForEach {
public static void main(String[] args) {
int j = 0; // we use the counter this way
while (j < 10) {
System.out.println(j + 1 + ". Hello!");
j++;
}
}
}
No entanto, os programadores profissionais realmente não gostam do loop while e, sempre que possível, tentam usar o loop for.
PARA | ENQUANTO |
---|---|
Usamos o loop for se já soubermos o número de iterações. |
Usamos loop while se não soubermos exatamente o número de iterações. |
Inicialização, verificação de condição e alteração do contador já estão costurados na sintaxe de um loop |
Inicialização e verificação de condição dentro do loop. Você também pode usar o contador em instruções. |
Loop infinito para:
|
Loop infinito enquanto:
|
Como sair de um loop for em java
Normalmente, um loop for está sendo executado como um fluxo e a maneira natural de sair de um loop é quando uma condição assume um valor falso. No entanto, existem duas instruções de controle que permitem que você saia do loop antes de obter o valor falso de uma condição — break e continue.- break permite sair do corpo do loop atual como se a condição do loop tivesse sido avaliada como falsa.
- continue faz o loop pular para a próxima etapa (iterando o contador) sem executar as instruções.
public class ForBreakExample {
public static void main(String[] args) {
String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
for (int i = 0; i < names.length; i++) {
// how to break out of a for loop, java: check if we have any "Stranger" in // our array
if (names[i].equals("Stranger")) {
System.out.println("I don't chat with strangers");
break;
}
System.out.println("Hello," + names[i]);
}
}
}
O resultado da execução do nosso programa é:
Hello,Mike
Hello,Dustin
I don't chat with strangers
Ver? Nós fugimos do circuito antes de cumprimentarmos Lucas e Will. Agora vamos usar continue, apenas para ignorar um "estranho", mas ficar dentro do loop para dizer olá a outros amigos.
public class ForContinueExample {
public static void main(String[] args) {
String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
for (int i = 0; i < names.length; i++) {
if (names[i].equals("Stranger")) {
System.out.println("I don't chat with strangers");
continue;
}
System.out.println("Hello," + names[i]);
}
}
}
O resultado é:
Hello,Mike
Hello,Dustin
I don't chat with strangers
Hello,Lucas
Hello,Will
Excelente! Cumprimentamos todos os amigos, mas não falamos com um estranho.
Versão aprimorada de for loop ou for-each
For-each é um tipo de loop for usado quando você precisa processar todos os elementos de uma matriz ou coleção. Na verdade, a própria frase for-each não é usada neste ciclo. A sintaxe é a seguinte:for (type itVar: array)
{
Block of operators;
}
Onde type é o tipo da variável iterativa (o mesmo que o tipo de dados do array), ItVar é seu nome, array é o array ou pode haver outra estrutura de dados, por exemplo, ArrayList. Como você pode ver, não há contador, a variável de iteração itera sobre os elementos de uma matriz ou coleção, e não sobre os valores do índice. Quando esse loop é executado, a variável de iteração recebe sequencialmente o valor de cada elemento da matriz ou coleção, após o qual o bloco especificado de instruções (ou operador) é executado. Atenção: o loop for-each pode ser aplicado a arrays e quaisquer classes que implementem a interface java.lang.Iterable. Vamos resolver o mesmo problema com saudações a amigos, ignorando estranhos ("Stranger"), mas desta vez use o loop for-each.
public class ForEachExample {
public static void main(String[] args) {
String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
// for each loop, Java code
for (String name : names) {
if (name.equals("Stranger")) {
System.out.println("I don't chat with strangers");
continue;
}
System.out.println("hello, " + name);
}
}
}
Para reforçar o que você aprendeu, sugerimos que você assista a uma vídeo aula do nosso Curso de Java
Mais leitura: |
---|
GO TO FULL VERSION