Skip to main content

Utilizar bucles

Objetivos de aprendizaje

Después de completar esta unidad, podrá:

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

En nuestro ejemplo Hora del té, creamos una tetera para compartir con nuestros amigos más cercanos. Pero ¿qué ocurre si tenemos que servir el té para un grupo de 100 personas? Tenemos que realizar los mismos pasos una y otra vez hasta que todo el mundo esté servido. Parece que esto va a suponer mucho código redundante, ¿verdad? Ahí es donde los bucles resultan de utilidad.

Un bucle es un bloque de código que se repite hasta que se cumple cierta condición. En el caso del código de Hora del té, revisemos los pasos que hay que repetir:

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 maneras de codificar bucles: los bucles while, do-while y for. Por ahora nos centraremos en los bucles while y do-while. Como indican sus nombres, los bucles while (mientras) y do-while (hacer-mientras) son muy parecidos. Ambos verifican que se cumpla una condición en particular. El diferenciador es cuándo verifican que se cumple la condición. Los bucles while comprueban la condición antes de iniciar el bucle y los bucles do-while la comprueban después de finalizar el bucle. 

Parece solo un pequeño detalle, ¿verdad? Pero realmente, la repercusión es bastante grande. 

Piense en ello de esta manera: el bucle do-while siempre se ejecuta al menos una vez. El bucle while podría no ejecutarse nunca, dependiendo de la condición. 

Bucles while

El bucle while empieza verificando se cumplió una condición. Si la condición es verdadera, hace algo. Si es falsa, el bucle se detiene.

Un flujo de proceso gráfico para un bucle while que consta de una condición que se está verificando para ver si es verdadera o falsa. Si la condición es verdadera el bucle continúa. Si la condición es falsa el bucle se detiene.

Nota

Nota

Para repasar los símbolos de gráficos de flujo y notación, haga clic aquí.

Esta es la sintaxis:

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

Apliquemos bucles while a nuestro código Hora del té. 

  1. En Developer Console, haga clic en Debug (Depuración) | Open Execute Anonymous Window (Abrir ventana de ejecución anónima).
  2. Copie el siguiente código y péguelo en la ventana Enter Apex Code (Ingresar 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 Open Log (Abrir registro) y haga clic en Execute (Ejecutar). Se abre Execution Log (Registro de ejecución), mostrando el resultado de la ejecución de su código.
  4. Seleccione la casilla de verificación Debug Only (Solo depurar) en la parte inferior de la pantalla.

No, -- no es un error ortográfico. Se llama un operador post-disminución. Es una forma abreviada de decir, “Resta un número de este valor”. Si totalAmountSugar es igual a 159, disminúyela de modo que ahora el valor de totalAmountSugar sea igual a 158. El operador post-aumento, ++, hace lo contrario, agregar un número al valor.

¿Qué está pasando exactamente aquí? Recuerde, tenemos un objetivo principal: servir té a 100 invitados. Cada vez que servimos a un invitado, se restan un servicio de cada ingrediente (totalAmountSugar y totalAmountTea) y un invitado (totalGuests). Cuando totalAmountSugar o totalAmountTea llegan a 0 (línea 15) O totalGuests llega a 0 (línea 12), el bucle se detiene y no se sirve a nadie más. 

Veamos cómo funciona el bucle do-while.

Bucles do-while

Un bucle do-while permite que el código haga algo una vez antes de que se pruebe la condición.

El bucle do-while comienza haciendo una tarea una vez. A continuación, se verifica una condición. Si la condición es verdadera, ejecuta la tarea de nuevo. Si es falsa, el bucle se detiene.

Un flujo de proceso gráfico para un bucle do-while que consta de un bloque de código que se ejecuta y luego se verifica una condición para ver si es verdadera o falsa. Si la condición es verdadera el bucle continúa. Si la condición es falsa 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 Debug (Depuración) | Open Execute Anonymous Window (Abrir ventana de ejecución anónima).
  2. Copie el siguiente código y péguelo en la ventana Enter Apex Code (Ingresar 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 Open Log (Abrir registro) y haga clic en Execute (Ejecutar). Se abre Execution Log (Registro de ejecución), mostrando el resultado de la ejecución de su código.
  4. Seleccione la casilla de verificación Debug Only (Solo depurar) en la parte inferior de la pantalla.

Declaró variables, instanció valores, creó listas y realizó bucles de datos de varias maneras. ¡Felicitaciones! Completó una introducción a Apex y está en el buen camino para comprender más sobre el código.

Recursos

Comparta sus comentarios de Trailhead en la Ayuda de Salesforce.

Nos encantaría saber más sobre su experiencia con Trailhead. Ahora puede acceder al nuevo formulario de comentarios en cualquier momento en el sitio de Ayuda de Salesforce.

Más información Continuar a Compartir comentarios