19. C++ || Estructura de control while

Ya finalizado el estudio anterior, daremos inicio a los bucles while, for y do-while en C++.





bucle while


Las estructuras repetitivas han sido pensadas para facilitar el trabajo humano debido a la cantidad de tareas que puede llegar a realizar un computador, la sentencia while es un bucle que se repite o itera un número determinado de veces, así como en el caso de la sentencia if, la sentencia while en C++ también tiene una condición que ejecuta un bloque de acciones, si esta condición llega a ser verdadera, entonces el cuerpo del bucle se pasa a ejecutar, esto va a dejar de ocurrir en el momento que la condición sea falsa. Un bucle while funciona de la siguiente manera:

Primero se evalúa una condición, si esta es verdadera, pasa a ejecutar el cuerpo del bucle que esta encerrado en llaves, luego que ejecute su última acción, el programa regresa al principio del bucle y nuevamente evalúa la condición, si sigue siendo verdadera, ejecuta el cuerpo del bucle nuevamente, si no lo es, sale de él y se ejecutan las sentencias posteriores.

El bucle while en C++ se va a repetir siempre que la condición sea verdadera, su sintaxis es:

while (condición)
{
// cuerpo del bucle
}

  • while palabra reservada por C++ que indica el comienzo de un bucle while
  • condición expresión lógica que determina si las acciones que estĆ”n dentro del cuerpo del bucle se van a ejecutar
  • cuerpo del bucle acciones que se van ejecutar siempre que condición sea verdadera

La condición del bucle se va a evaluar siempre antes de que se ejecute el cuerpo del bucle. ¿Recuerdan de los operadores de incremento y decremento en C++? Vamos a ver lo Ćŗtiles que son:

int numero = 1; 

while (numero <= 100) 
{ 
 cout<<numero<<endl;
 numero++; 
}

Este programa en C++ lo que va a hacer es escribir todos lo números del 1 al 100. Fíjense en la sentencia numero++, tengan en claro que el bucle while se va a ejecutar siempre que la condición sea verdadera, esto sugiere que pueden llegar a existir bucles infinitos, lo cual es un total error. Para evitar eso ustedes los programadores deben crear una forma en la cual, la condición del bucle en algún momento llegue a ser falsa, veamos lo que ocurre en el ejemplo anterior.

  1. Se declara e inicializa una variable llamada numero a 1.
  2. Se impone la condición de que mientras numero sea menor o igual a 100, se va a ejecutar el cuerpo del bucle.
  3. Como la condición es cierta ya que 1 es menor que 100, entra en el cuerpo del bucle.
  4. Se escribe en pantalla el valor de la variable numero, en este caso, 1 y se hace un salto de lĆ­nea simple.
  5. Se incrementa el valor de la variable numero en 1.
  6. Se regresa al paso 2.

Ya la variable numero valdrÔ 2, como el bucle va a volver al inicio, se va a evaluar nuevamente la condición, la cual serÔ cierta ya que 2 es menor que 100, se va a imprimir el valor de 2 y nuevamente la variable numero va a aumentar 1, es decir, 3, otra vez se evalúa la condición, (3 <= 100) esto es verdad, se imprime 3 en pantalla y numero aumenta a 4, se vuelve a evaluar la condición y así consecutivamente.

¿QuĆ© va a ocurrir cuando la variable numero sea igual a 100? Se evaluarĆ” la condición (100 <= 100) esto sabemos que es verdad porque 100 = 100 asĆ­ que se va a imprimir en pantalla el numero 100 y numero aumentarĆ” en 1.

¿QuĆ© va a ocurrir cuando la variable numero sea igual a 101? Otra vez se evaluarĆ” la condición (101 <= 100) y esto NO es verdad, por lo tanto se saldrĆ” del bucle y no se ejecutarĆ”n las acciones que estĆ”n encerradas en llaves. Un grave error serĆ­a el siguiente:

int numero = 1; 
while (numero <= 100) 
{ 
 cout<<numero<<endl; 
 numero--; 
} 

Noten que es el mismo ejemplo anterior con la diferencia de que ahora a la variable numero se le va a restar uno, esto trae como consecuencia que la condición siempre va a ser verdadera ya que numero va ir decreciendo continuamente.

1
0
-1
-2
-3
.
.
.
-n

Y por obvias razones siempre serĆ” menor que 100, a esto se le llama bucle infinito.



1 comentario: