Skip to main content
Build the future with Agentforce at TDX in San Francisco or on Salesforce+ on March 5–6. Register now.

Utilizar bucles

Objetivos de aprendizaje

Después de completar esta unidad, podrá:

  • Diferenciar entre bucles while y do-while.
  • Utilizar operadores de incremento y decremento para controlar la ejecución de código.

En el ejemplo de la hora del té, hicimos una tetera de té para compartirla con nuestros amigos más íntimos. Pero, ¿qué ocurre si tenemos que servir té a un grupo de 100 personas? Tenemos que seguir los mismos pasos una y otra vez hasta haber servido a todo el mundo. Parece mucho código redundante, ¿verdad? Por eso bucles son tan útiles.

Un bucle es un bloque de código que se repite hasta que se cumple cierta condición. Veamos los pasos que hay que repetir en el caso del código de la hora del té:

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

Los pasos repetidos pueden agregarse a un bucle. Apex tiene tres formas de repetir código: bucles while, do-while, y for. Por ahora, nos centraremos en los bucles while and do-while. Al igual que sus nombres, los bucles while y do-while son muy parecidos. Ambos verifican que se cumpla cierta condición. La diferencia es cuándo verifican que se cumple esa condición. Los bucles while comprueban la condición antes de que empiece el bucle, y los bucles do-while la comprueban después de que el bucle termine. 

Parece un detalle muy pequeño, ¿verdad? Pues el impacto es bastante grande. 

Piénselo de la siguiente manera: el bucle do-while siempre se ejecuta al menos una vez. El bucle while puede que nunca se ejecute, dependiendo de la condición. 

Bucles while

El bucle while comienza comprobando si se cumple una condición. Si la condición se cumple, el bucle hace algo. Si no se cumple, el bucle se detiene.

Un flujo gráfico de proceso para un bucle while que consiste en la comprobación de una condición con el fin de comprobar si se cumple o no. Si la condición se cumple, el bucle continúa. Si la condición no se cumple, el bucle se detiene.

Nota

Nota

Para obtener un repaso de los símbolos y la notación de un diagrama de flujo, haga clic aquí.

Esta es la sintaxis:

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

Apliquemos bucles while al código de la hora del té. 

  1. En Developer Console, haga clic en Depuración | Abrir ventana de ejecución anónima.
  2. Copie este código y péguelo en la ventana Introducir código 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. Seleccione la casilla de verificación Abrir registro y haga clic en Ejecutar. Se abre el registro de ejecución, que muestra el resultado de la ejecución del código.
  4. Seleccione la casilla de verificación Solo depurar en la parte inferior de la pantalla.

No, ese signo -- no es un error ortográfico. Se llama operador postdecremento. Es la forma abreviada de decir "Reste un número a este valor". Si totalAmountSugar es igual a 159, redúzcalo para que el valor de totalAmountSugar sea 158. El operador postincremento, ++, hace lo contrario: agrega un número al valor.

Qué sucede aquí exactamente? Recuerde, tenemos un objetivo principal: servir té a 100 invitados. Cada vez que sirvamos a un invitado, se restan una unidad de cada ingrediente (totalAmountSugar y totalAmountTea) y un invitado. Cuando totalAmountSugar o totalAmountTea sea 0 (línea 15) O BIEN totalGuests sea 0 (línea 12), el bucle se detendrá y no se servirá a nadie más. 

Veamos cómo funciona el bucle do-while.

Bucles do-while

Un bucle do-while permite que el código realice alguna acción antes de que se compruebe la condición.

El bucle do-while comienza haciendo una tarea una vez. A continuación, se comprueba la condición. Si la condición se cumple, ejecuta la tarea de nuevo. Si no se cumple, el bucle se detiene.

Un flujo gráfico de proceso para un bucle do-while que consiste en la ejecución de un bloque de código y en la comprobación de una tarea para ver si se cumple o no. Si la condición se cumple, el bucle continúa. Si la condición no se cumple, el bucle se detiene.

Eche un vistazo a la sintaxis:

Do {
    //run this block of code
} while(condition);
  1. En Developer Console, haga clic en Depuración | Abrir ventana de ejecución anónima.
  2. Copie este código y péguelo en la ventana Introducir código 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. Seleccione la casilla de verificación Abrir registro y haga clic en Ejecutar. Se abre el registro de ejecución, que muestra el resultado de la ejecución del código.
  4. Seleccione la casilla de verificación Solo depurar en la parte inferior de la pantalla.

Ha declarado variables, ha instanciado valores, ha creado listas y ha creado bucles de datos de varias formas. Enhorabuena. Ha completado una introducción a Apex y se encuentra en el camino de saber más sobre código.

Recursos

Comparta sus comentarios sobre Trailhead en la Ayuda de Salesforce.

Nos encantaría conocer su experiencia con Trailhead. Ahora puede acceder al nuevo formulario de comentarios cuando quiera desde el sitio de la Ayuda de Salesforce.

Más información Continuar para compartir comentarios