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