Um Guia para Java Loops

Um Guia para Java Loops

1. Visão geral

Neste artigo, veremos um aspecto central da linguagem Java - executar uma instrução ou um grupo de instruções repetidamente - usando loops.

2. Introdução aos Loops

Em linguagens de programação,looping is a feature which facilitates the execution of a set of instructions until the controlling Boolean-expression evaluates to false.

Java fornece diferentes tipos de loops para atender a qualquer necessidade de programação. Cada loop tem seu próprio objetivo e um caso de uso adequado para servir.

Aqui estão os tipos de loops que podemos encontrar em Java:

  • Loopfor simples

  • Loopfor-each aprimorado

  • loopWhile

  • loopDo-While

3. Loopfor simples

Um loopfor é uma estrutura de controle que nos permite repetir certas operações incrementando e avaliando um contador de loop.

Antes da primeira iteração, o contador de loop é inicializado e, em seguida, a avaliação da condição é executada, seguida pela definição da etapa (geralmente uma simples incrementação).

A sintaxe do loopfor é:

for (initialization; Boolean-expression; step)
  statement;

Vamos ver em um exemplo simples:

for (int i = 0; i < 5; i++) {
    System.out.println("Simple for loop: i = " + i);
}

Osinitialization,Boolean-expression,estep usados ​​na instruçãofor sãooptional. Aqui está um exemplo de uminfinite para loop:

for ( ; ; ) {
    // Infinite for loop
}

3.1. Rotuladosfor Loops

Também podemos ter loops rotulados defor. É útil se tivermos loops for aninhados para que possamosbreak /continue de um loopfor específico:

aa: for (int i = 1; i <= 3; i++) {
    if (i == 1)
      continue;
    bb: for (int j = 1; j <= 3; j++) {
        if (i == 2 && j == 2) {
            break aa;
        }
        System.out.println(i + " " + j);
    }
}

4. Loopfor aprimorado

Desde Java 5, temos um segundo tipo de loopfor chamadoenhanced forwhich torna mais fácil iterar sobre todos os elementos em um array ou coleção.

A sintaxe do loopenhanced for é:

for(Type item : items)
  statement;

Como esse loop é simplificado em comparação com o padrão para loop, precisamos declarar apenas duas coisas ao inicializar um loop:

  1. O identificador para um elemento que estamos iterando

  2. A matriz / coleção de origem que estamos iterando

Portanto, podemos dizer que:For each element in items, assign the element to the item variable and run the body of the loop.

Vamos dar uma olhada no exemplo simples:

int[] intArr = { 0,1,2,3,4 };
for (int num : intArr) {
    System.out.println("Enhanced for-each loop: i = " + num);
}

Podemos usá-lo para iterar em várias estruturas de dados Java:

Dado um objetoList<String> list - podemos iterá-lo:

for (String item : list) {
    System.out.println(item);
}

Podemos iterar da mesma forma em umSet<String> set:

for (String item : set) {
    System.out.println(item);
}

E, dado umMap<String,Integer> map, podemos iterar sobre ele também:

for (Entry entry : map.entrySet()) {
    System.out.println(
      "Key: " + entry.getKey() +
      " - " +
      "Value: " + entry.getValue());
}

4.1. Iterable.forEach()

Desde o Java 8, podemos aproveitar os loops de cada um de uma maneira um pouco diferente. Agora temos um métodoforEach() dedicado na interfaceIterable que aceita uma expressão lambda que representa uma ação que queremos executar.

Internamente, ele simplesmente delega o trabalho no loop padrão:

default void forEach(Consumer action) {
    Objects.requireNonNull(action);
    for (T t : this) {
        action.accept(t);
    }
}

Vamos dar uma olhada no exemplo:

List names = new ArrayList<>();
names.add("Larry");
names.add("Steve");
names.add("James");
names.add("Conan");
names.add("Ellen");

names.forEach(name -> System.out.println(name));

5. While Loop

O loopwhile é a instrução de loop mais fundamental do Java. Ele repete uma declaração ou bloco de declaraçõeswhile, seu controleBoolean-expression é verdadeiro.

A sintaxe do loopwhile é:

while (Boolean-expression)
    statement;

The loop’s Boolean-expression is evaluated before the first iteration of the loop - o que significa que se a condição for avaliada como falsa, o loop pode não ser executado nem uma vez.

Vamos dar uma olhada em um exemplo simples:

int i = 0;
while (i < 5) {
    System.out.println("While loop: i = " + i);
}

6. Do-While Loop

O loop do-while funciona exatamente como o loop while, exceto pelo fato de quethe first condition evaluation happens after the first iteration of the loop:

do {
    statement;
} while (Boolean-expression);

Vamos dar uma olhada em um exemplo simples:

int i = 0;
do {
    System.out.println("Do-While loop: i = " + i++);
} while (i < 5);

7. Conclusão

Neste tutorial rápido, mostramos os diferentes tipos de loops disponíveis na linguagem de programação Java.

Também vimos como cada loop serve a um propósito específico, dado um caso de uso adequado. Discutimos as circunstâncias adequadas para uma determinada implementação de loop.

Como sempre, os exemplos podem ser encontradosover on GitHub.