CodeGym /Blogue Java /Random-PT /Java For Loop
John Squirrels
Nível 41
San Francisco

Java For Loop

Publicado no grupo Random-PT
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.
O contador está mudando, geralmente a incrementação (ou decrementação) acontece após cada iteração no loop. Você pode pular qualquer uma das três expressões de loop (inicialização, verificação de condição, alteração do contador). A condição do loop é verificada antes da próxima etapa do loop. Se a condição for falsa, o programa sai do loop e continua com a instrução seguinte à construção for. Aqui temos um diagrama de blocos do loop for. For loop em Java - 2

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:
  1. Olá!
  2. Olá!
  3. Olá!
  4. Olá!
  5. Olá!
  6. Olá!
  7. Olá!
  8. Olá!
  9. Olá!
  10. Olá!
Aqui está o nosso programa Java que resolve este problema:

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. For loop em Java - 3

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:


for(;;){
	System.out.println("working...");
}

Loop infinito enquanto:


while(true){
	System.out.println("working...");
}

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.
Vamos resolver o próximo problema usando break e continue. Temos uma série de nomes e dizemos olá a todos dessa lista, exceto aos estranhos. Portanto, se encontrarmos uma string “Stranger” durante nosso loop, sairemos dela (vá embora e pare para dizer olá a qualquer outra pessoa).

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
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION