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.
Esta es la sintaxis:
While(condition) { //run this block of code }
Apliquemos bucles while
a nuestro código Hora del té.
- En Developer Console, haga clic en Debug (Depuración) | Open Execute Anonymous Window (Abrir ventana de ejecución anónima).
- 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--; }
- 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.
- 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.
Eche un vistazo a la sintaxis:
Do { //run this block of code } while(condition);
- En Developer Console, haga clic en Debug (Depuración) | Open Execute Anonymous Window (Abrir ventana de ejecución anónima).
- 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);
- 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.
- 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.