Skip to main content
Stream TDX Bengaluru on Salesforce+. Start learning the critical skills you need to build and deploy trusted autonomous agents with Agentforce. Register for free.

Usar loops

Objetivos de aprendizagem

Após concluir esta unidade, você estará apto a:

  • Diferenciar os loops while e do-while.
  • Usar operadores de incremento e diminuição para controlar a execução de código.

No nosso exemplo Teatime, fizemos um bule de chá para compartilhar com nossos amigos mais próximos. Mas o que acontece se precisarmos servir chá a um grupo de 100 pessoas? Precisamos fazer as mesmas etapas repetidamente até que todos tenham sido atendidos. Parece que isso vai ser muito código redundante, não é? É aqui que os loops são muito práticos.

Um loop é um bloco de código que é repetido até que uma condição específica seja atendida. No caso do código Teatime, vamos analisar as etapas a serem repetidas:

Add Tea and Sugar to Teacup
Pour Tea in Teacup
Put 1 teaspoon of Sugar in Teacup
Stir Tea in Teacup
Serve Tea to a Friend

As etapas repetidas podem ser adicionadas a um loop. O Apex tem três maneiras de codificar loops: os loops while, do-while e for. Por enquanto, vamos nos concentrar nos loops while e do-while. Como seus nomes, os loops while e do-while são muito semelhantes. Ambos verificam se uma condição específica é atendida. O diferenciador é quando eles verificam se a condição é atendida. Os loops while verificam a condição antes do início do loop, e os loops do-while verificam após a conclusão do loop. 

Parece só um pequeno detalhe, não é? Na verdade, o impacto é bem grande. 

Pense dessa forma: o loop do-while sempre é executado pelo menos uma vez. O loop while pode nunca ser executado, dependendo da condição. 

Loops while

O loop while começa verificando se uma condição foi atendida. Se a condição for verdadeira, ele faz algo. Se for falsa, o loop para.

Um gráfico de fluxo de processo para um loop while consistindo em uma condição que está sendo verificada para ver se ela é verdadeira ou falsa. Se a condição for verdadeira, o loop continua. Se a condição for falsa, o loop para.

Nota

Nota

Para relembrar símbolos de fluxograma e notação, clique aqui.

Esta é a sintaxe:

While(condition) {
    //run this block of code
}

Vamos aplicar loops while ao nosso código Teatime. 

  1. No Developer Console, clique em Debug (Depurar) | Open Execute Anonymous Window (Abrir a janela Executar anônimo).
  2. Copie esse código e cole-o na janela Enter Apex Code (Inserir código do Apex).
    //Declare an Integer variable called totalGuests and set it to 100
    Integer totalGuests = 100;
      
    //Declare an Integer variable called totalAmountSugar and set it to 159 (number of teaspoons in a bag of sugar).
    Integer totalAmountSugar = 159;
      
    //Declare an Integer variable called totalAmountTea and set it to 35 (number of teabags).
    Integer totalAmountTea = 35;
      
    //Loop: Add a teaspoon of sugar and one tea bag to a tea cup. Serve until there is no sugar or tea left.
      
    While(totalGuests > 0) {
        System.debug(totalGuests + ' Guests Remaining');
        //check ingredients
        if(totalAmountSugar == 0 || totalAmountTea == 0) {
            System.debug('Out of ingredients! Sugar: ' + totalAmountSugar + ' Tea: ' + totalAmountTea);
            break; //ends the While loop
        }
      
        //add sugar
        totalAmountSugar--;
      
        //add tea
        totalAmountTea--;
      
        //guest served
        totalGuests--;
    }
  3. Marque a caixa de seleção Open Log (Abrir registro) e clique em Execute (Executar). O log de execução abre, exibindo o resultado da execução do seu código.
  4. Selecione a caixa de seleção Debug Only (Depurar somente) na parte inferior da janela.

Não, o sinal -- não é um erro de digitação. Ele é chamado de operador de pós-decremento. É uma forma abreviada de dizer "subtrai um número deste valor". Se totalAmountSugar for igual a 159, subtraia-o de modo que agora o valor de totalAmountSugar seja igual a 158. O operador de pós-incremento ++ faz o oposto, adiciona um número ao valor.

E o que está acontecendo agora exatamente? Lembre-se que temos um objetivo principal: servir chá para 100 convidados. Cada vez que servimos um convidado, uma porção de cada ingrediente (totalAmountSugar e totalAmountTea) e um convidado (totalGuests) são subtraídos. Quando totalAmountSugar ou totalAmountTea chega a 0 (linha 15) ou totalGuests chega a 0 (linha 12), o loop para e mais ninguém é servido. 

Vamos ver como o loop do-while funciona.

Loops do-while

Um loop do-while permite que o código faça algo antes que a condição seja testada.

O loop do-while começa fazendo uma tarefa uma vez. Em seguida, uma condição é verificada. Se a condição for verdadeira, ele executa a tarefa novamente. Se for falsa, o loop para.

Um gráfico de fluxo de processo para um loop do-while consistindo em um código de bloco sendo executado e uma condição que está sendo verificada para ver se ela é verdadeira ou falsa. Se a condição for verdadeira, o loop continua. Se a condição for falsa, o loop para.

Dê uma olhada na sintaxe:

Do {
    //run this block of code
} while(condition);
  1. No Developer Console, clique em Debug (Depurar) | Open Execute Anonymous Window (Abrir a janela Executar anônimo).
  2. Copie esse código e cole-o na janela Enter Apex Code (Inserir código do Apex).
    //Declare an Integer variable called totalGuests and set it to 100
    Integer totalGuests = 100;
      
    //Declare an Integer variable called totalAmountSugar and set it to 159 (number of teaspoons in a bag of sugar).
    Integer totalAmountSugar = 159;
      
    //Declare an Integer variable called totalAmountTea and set it to 35 (number of teabags).
    Integer totalAmountTea = 35;
      
    do {
        //deduct sugar serving
        totalAmountSugar--;
      
        //deduct tea serving
        totalAmountTea--;
      
        //deduct guest
        totalGuests--;
      
        System.debug(totalGuests + ' Guests Remaining!');
      
        //check ingredients
        if(totalAmountSugar == 0 || totalAmountTea == 0) {
            System.debug('Out of ingredients!');
            break; //ends the While loop
        }
      
    } while(totalGuests > 0);
  3. Marque a caixa de seleção Open Log (Abrir registro) e clique em Execute (Executar). O log de execução abre, exibindo o resultado da execução do seu código.
  4. Selecione a caixa de seleção Debug Only (Depurar somente) na parte inferior da janela.

Você declarou variáveis, determinou valores, criou listas e fez loop de dados de várias maneiras. Parabéns! Você concluiu uma introdução ao Apex e está no caminho certo para entender mais sobre o código.

Recursos

Compartilhe seu feedback do Trailhead usando a Ajuda do Salesforce.

Queremos saber sobre sua experiência com o Trailhead. Agora você pode acessar o novo formulário de feedback, a qualquer momento, no site Ajuda do Salesforce.

Saiba mais Continue compartilhando feedback