2. ESTRUCTURAS REPETITIVAS WHILE, DO WHILE
Las estructuras de control repetitivas (bucles) son aquellas que reiteran una o un grupo de instrucciones
"n" veces y dependen de una variable de control del ciclo. Es decir, ejecutan una o varias instrucciones
un número de veces definido. Las instrucciones básicas que permiten construir este tipo de estructuras
son while, do ... while y for.
1. Operadores de conteo y acumulaciones
Los operadores de incremento y decremento cumplen diferentes funciones dentro de la codificación,
en ocasiones puden realizar conteos o acumulaciones, también es utilizado en las estructuras de con-
trol repetitivas como parte de su formato.
1.1. Operadores de incremento y decremento. Permiten aumentar o disminuir en un valor
a una determinada variable, normalmente se usa para conteos, los operadores más co-
munes se observan en el siguiente cuadro:
Operadores Descripción Ejemplo
++$variable
También denominado preIncremento, que aumenta el valor
de la variable en uno y luego devuelve el valor ya aumentado.
++$n;
$variable++
También denominado postIncremento, en la cual primero de-
vuelve el valor de la variable y luego aumenta en uno.
$n++;
--$variable
También denominado preDecremento, el cual diminuye en
uno el valor de la variable en uno y luego devuelve el valor
ya disminuido.
--$n;
$variable--
También denominado postDecremento, el cual devuelve el
valor de la variable y luego decrementa en uno su valor.
$n--;
1.2. Operadores complejos. Permiten acumular valores que provienen de sumas, restas,
multiplicaciones o divisiones sucesivas, se utiliza similar a los contadores y acumula-
dores, los operadores son los siguiente:
Operadores Descripción Ejemplo Referencia
+=
Operador complejo de aumento y
acumulador de valores
$n+=1; (Conteo)
$a+=$n; (Acumulador
$n = $n+1;
$a = $a+$n;
-=
Operador complejo de decremento y
acumulador de valores
$n-=;
$a-=$n;
$n = $n-1;
$a = $a-$n;
*=
Operador complejo de acumulador
de valores en producto
$n-=; $a = $a*$b;
/=
Operador complejo de acumulador
de valores en división
$a/=$n; $a = $a/$n;
2. Contadores
Un contador es una variable normalmene entera en PHP, permite tener el control de las actividades
un número determinado de veces.
2.1. Características:
El contador casi siempre aumenta o disminuye en uno su valor.
Las estructuras repetitivas incluyen contador como parte importante de su implementación.
Su formato es el siguiente.
Donde contador + 1, es la expresión
que asigna un valor resultante a la
misma variable contador actualizando así el valor que anres contenía dicha variable.
$contador = $contador + 1
3. Veamos el siguiente caso para comprender cómo trabajan los contadores, si tenemos los
siguientes billetes de S/. 200.00 soles. La pregunta sería ¿Cúantos billetes de 200 soles
hay?:
Normalmente cuando se realizan conteos se debe inicializar dicha variable con el valor
cero; entonces para este caso se asume como tal. Finalmente, la variable cBillete tendrá
el valor cuatro, por el valor de conteo realizado.
3. Acumuladores
Un acumulador tiene las mismas características del contador con la diferencia, de que no cuenta sino
acumula los valores.
3.1. Características:
El acumulador aumenta o disminuye su valor a partir de otro valor que no necesariamente
es constante.
Para poder ejecutar de manera correcta un acumulador, siempre debe estar incluido en una
estructura de control repetitiva.
Su formato es:
Donde $acumulador+$valor, es
la expresión que asigna un valor resultante a la misma variable acumulador, actualizando así el
valor que antes contenía decha variable.
Veamos el siguiente caso para comprender cómo trabajan los acumuladores, si tenemos
los siguientes billetes de S/. 200.00 soles. ¿Cúanto dinero tenemos en total?:
Contador Valor actualizado Representación total del dinero
$cBillete = $cBillete + 1
$cBillete+=1
$cBillete++;
$cBillete = 0+1
1
$cBillete = $cBillete + 1
$cBillete+=1
$cBillete++;
$cBillete = 1+1
2
$cBillete = $cBillete + 1
$cBillete+=1
$cBillete++;
$cBillete = 2+1
3
$cBillete = $cBillete + 1
$cBillete+=1
$cBillete++;
$cBillete = 3+1
4
$acumulador = $acumulador + $valor
4. Cuando se realiza una acumulación, la variable debe inicializar con el valor cero; enton-
ces, para este caso asumiremos que el programador lo realizará. Finalmente, la variable
aBillete tendrá el valor de ocho cientos soles, por la acumulación de los billetes de S/.
200.00.
4. Estructura de control repetitivo WHILE
Esta estructura ejecuta repeticicones de una sentencia o un grupo de sentencias un número determi-
nado de veces, según la condición lógica implementada; es decir, esta condición controlará la se-
cuencia de repeticiones antes de que se ejecute.
Consideraciones:
Considere que la condición lógica usa los operadores lógicos y relacionales, tal como se usa en la
condicional if.
La condición es evaluada, y si el resultado es true se ejecutarán las sentencias pertenecientes al
ciclo de repeticiones, única y exclusivamente si la condición sigue resultando true; algunos suelen
llamar a esta acción bucle.
Si la condición evaluada resulta false, se ejecutará las sentencias encontradas fuera de la imple-
mentación de la estructura while.
Su formato es el siguiente:
4.1. Ciclo de repeticiones while con cero iteración:
¿Qué es iteracion en programación?
Iteración significa repetir varias veces un proceso con la intención de alcanzar una meta
deseada, objetivo o resultado. Cada repetición del proceso también se le denomina una
"iteración", y los resultados de una iteración se utilizan como punto de partida para la
siguiente iteración.
Se le llama cero iteración, cuando la condición especificada en la estructura while resulta false
en la primera evaluación. Ejemplo:
<?php
$i=10;
Acumulador Valor actualizado Representación total del dinero
$aBillete = $aBillete + 200
$aBillete+=200
$aBillete = 0+200
200
$aBillete = $aBillete + 200
$aBillete+=200
$aBillete = 200+200
400
$aBillete = $aBillete + 200
$aBillete+=200
$aBillete = 400+200
600
$aBillete = $aBillete + 200
$aBillete+=200
$aBillete = 600+200
800
While (condición){
Sentencias_repetidas;
}
5. while($i<= 1){
echo "$i, ";
$i--;
}
?>
Como resultado no se obtendrá nada, porque la variable i tiene como valor inicial el número 10,
cuando esta variable entra en la evaluación condicional $i<= resulta false finalmente, se termina
el ciclo de repeticiones con cero iteracción.
La solución en estos casos es utilizar de la mejor manera los operadores de comparación, porque
dependerá de ellos el resultado true o false de la condición. La forma correcta sería:
<?php
$i=10;
while($i>= 1){
echo "$i, ";
$i--;
}
?>
Resultado:
4.2. Ciclo de repeticiones while infinito o bucle infito:
¿Qué es bucle infinito?
Un bucle debe contener condiciones que especifiquen un inicio y un fin, de manera que, mientras
las condiciones de cumplan, ejecuten una secuencia de códigos de manera repetitiva. Esto en
programación es un error que consiste en realizar un ciclo que se repite de forma indefinida ya
que su condición para finalizar nunca se cumple.
Se le llama while infinito o bucle infinito, cuando el resultado de evaluar la condición resulta
todo el tiempo true, esto genera un ciclo infinito de repeticiones, como, por ejemplo:
<?php
$i=1;
while($i<= 24){
echo "$i, ";
}
?>
Resultado:
Si la variable i tiene como inicial el número 1, cuando esta es evaluada por primera vez el resul-
tado es true e imprime dicho valor; luego se vuelve a evaluar la condición, resultando nueva-
mente true porque el valor 1 nunca cambio; imaginemos cuántas vueltas de ciclo se ejecutará,
ya que 1 siempre será menor a 24. A esto se le llama while infinito o bucle infinito, la forma
adecuada, con todo el formato es:
<html>
<head><title>Estructura de control repetitiva While</title></head>
<body bgcolor="#aabbff" text="#1f1fde" topmargin=20 leftmargin="120"></body>
<h2>Números infinitos <p></p></h2>
<section>
6. <?php
$i=1;
while($i<= 24){
echo "$i, ";
$i++;
}
?>
</section>
<footer>
<h6>Recopilado por: MaleCita</h6>
</footer>
</html>
Resultado:
4.3. Uso de la instrucción break en la estructura while
La instrucción break, finaliza el ciclo de repeticiones en una estructura while. La idea principal
es asignar un break dentro de una condición de la estructura if, como, por ejemplo:
Aplicación que permite mostrar los 10 primeros números múltiplos de 7, de 1000 números.
Solución:
<html>
<head><title>Estructura de control repetitiva While</title></head>
<body bgcolor="#aabbff" text="#1f1fde" topmargin=20 leftmargin="120"></body>
<h2>Múltiplos de 7</h2>
<section>
<?php
$n=1000;
$c=0;
$i=1;
while($i<= $n){
if ($i % 7 == 0){
echo "$i, ";
$c++;
}
if ($c == 10) {
break;
} else {
$i++;
}
}
?>
</section>
<footer>
<h6>Recopilado por: MaleCita</h6>
</footer>
</html>
Resultado:
Entre 1 y 1000 hay muchos múltiplos de 7, la codificación solo imprimio los 10 primeros nú-
meros, para el cual se declaro las variables para los valores inicial, $i=1, variable final, $n=1000
y variable contador, $c=0, este último tiene la misión de contabilizar la cantidad de veces que
encuentra un múltiple. Si este resulta 10, entonces se aplicará la instrucción break, caso contra-
rio se continuará con el ciclo de repeticiones.
7. 4.4. Uso de la instrucción continue en la estructura while
La instrucción continue, hace un salto dentro del ciclo de repeticiones, y realiza una nueva
evaluación de la condición. Como, por ejemplo:
Aplicación que permite mostrar los 50 números enteros a excepción de los múltiplos de 7.
Solución:
<html>
<head><title>Estructura de control repetitiva While</title></head>
<body bgcolor="#aabbff" text="#1f1fde" topmargin=20 leftmargin="120"></body>
<h2>Múltiplos de 7 no visibles </h2>
<section>
<?php
$n=50;
$i=0;
while($i<= $n){
$i++;
if ($i % 7 == 0) {
continue;
}
echo "$i, ";
}
?>
</section>
<footer>
<h6>Recopilado por: MaleCita</h6>
</footer>
</html>
Respuesta:
La estructura while ejecutara alrededor de 50 ciclos de repeticiones, de las cuales se omite la
impresión de los múltiplos de 7, con la condición if ($i%7==0); si el resultado es true, entonces
aplica la instrucción continue para que evalue al siguiente número y omita la impresión de los
múltiplos de 7.
4.5. Anidación de ciclos while
Se le llama así cuando dentro de la estructura while se implementa otro while, de tal manera
que trabajan en comunión para la muestra de sus resultados, como, por ejemplo:
Aplicación que permite mostrar una pirámide de números enteros, es decir de acuerdo al número
impreso se mostrará la cantidad de veces que representa.
Solución:
<html>
<head><title>Estructura de control repetitiva While</title></head>
<body bgcolor="#aabbff" text="#1f1fde" topmargin=20 leftmargin="120"></body>
8. <h4>Pirámide de números enteros </h4>
<section>
<?php
$n=10;
$i=1;
while($i<= $n){
$j=1;
while($j<=$i) {
echo $i.' ';
$j++;
}
echo "<br>";
$i++;
}
?>
</section>
<footer>
<h6>Recopilado por: MaleCita</h6>
</footer>
</html>
Respuesta:
Actividad domiciliaria Nro. 04
Con la finalidad de ampliar tu vocabulario en programación, extraer 20 palabras del contenido de la Actividad
de aprendizaje Nro 08 y guía de laboratorio, buscar su significado y resumirlo, y enviarlo en formato Pdf, al
aula virtual. El mismo que debe ser enviado entre las 09:30 y 12:30 horas o 18:30 y 22:00 horas del mismo día
de realizado la sesión de clases.
GUIA PRÁCTICA DE LABORATORIO Nro. 05
Tema : Estructura de control repetitivas WHILE, DO WHILE.
Objetivos : Realizar aplicaciones con estructuras de control repetitivos while, do while y sus va-
riaciones en casos propuestos.
WHILE DO WHILE
Enunciado Nro. 01: Aplicación que permita la impresión de los 24 primeros números en forma as-
cendente:
1.1. Creación del proyecto: repetitivaWhile, Archivo: numAscendentes.php
1.2. Codificación del archivo numAscendentes.php:
<!DOCTYPE html>
9. <html>
<head>
<meta charset="UTF-8">
<title>Estructura de control repetitivos</title>
</head>
<body topmargin="20" leftmargin="150"></body>
<?php
$i=0;
while($i<=24){
echo "$i, "; //impresión en una sola fila
//echo $i.'<br>';// impresión con saltos de linea
$i++;
}
?>
</html>
1.3. Ejecución del archivo numAscendentes.php:
Enunciado Nro. 02: Aplicación que permita la impresión de los 24 primeros números en forma des-
cendente:
2.1. Creación del proyecto: repetitivaWhile, Archivo: numDescendentes.php
2.2. Codificación del archivo numDescendentes.php:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Estructura de control repetitivos</title>
</head>
<body topmargin="20" leftmargin="150"></body>
<body>
<?php
$i=24;
while($i>=1){
echo "$i, "; //impresión horizontal
//echo $i.'<br>'; //impresión vertial
$i--;
}
?>
</body>
</html>
2.3. Ejecución del archivo numDescendentes.php:
10. Enunciado Nro. 03: Aplicación que permita la impresión de la tabla de multiplicar del número pro-
puesto(5), del 1 al 12, con sus respectivos operadores.
3.1. Creación del proyecto: repetitivaWhile, Archivo: tablaMultiplicarIndividual.php
3.2. Codificación del archivo tablaMultiplicarIndividual.php:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Estructura de control repetitivos</title>
</head>
<body topmargin=20 leftmargin="120"></body>
<body>
<?php
//Ingresamos en valor
$n=5;
echo"Tabla de múltiplicar del: $n <br>";
//Ciclo de repetición
$i=1;
while($i<=12){
echo $n. ' x ' .$i. ' = ' .$n * $i. '<br>';
$i++;
}
?>
</body>
</html>
3.3. Ejecución del archivo tablaMultiplicarIndividual.php:
11. Enunciado Nro. 04: Aplicación que permita la impresión de la tabla de multiplicar del número del 1
al 5, con los multiplicandos del 1 al 12.
4.1. Creación del proyecto: repetitivaWhile, Archivo: tablaMultiplicarVarios.php
4.2. Codificación del archivo tablaMultiplicarVarios.php:
<!DOCTYPE html>
<html>
<head><title>Estructura de control repetitiva While</title></head>
<body bgcolor="#ff00ff" text="#ffffff" topmargin=20></body>
<h2>Tablas de multiplicar del 1 al 12<p><img src="tablaMultiplicar.jpg" width="380" height="200"> </p></h2>
<section>
<?php
$ciclo1=1;
while($ciclo1<=10){
echo "<table border=5><tr align=center><td colspan=5>Tabla de multiplicar del ".$ci-
clo1.":</td></tr>";
$ciclo2=1;
while($ciclo2<=12){
$mult=$ciclo1*$ciclo2;
echo "<tr align=center><td>".$ciclo1."</td><td> X </td><td>".$ciclo2."</td><td> =
</td><td>".$mult."</td></tr>";
$ciclo2++;
}
echo "</table>";
$ciclo1++;
}
?>
</section>
<footer>
<h6>Recopilado por: MaleCita</h6>
</footer>
</html>
4.3. Ejecución del archivo tablaMultiplicarVa-
rios.php:
12. Enunciado Nro. 05: Aplicación que permita la impresión de varios elementos con sus respectivos
números de ubicación.
5.1. Creación del proyecto: repetitivaDoWhile, Archivo: númeroElementos.php
5.2. Codificación del archivo númeroElementos.php:
<!DOCTYPE html>
<html>
<head>
<body topmargin=20 leftmargin="120"></body>
<title></title>
</head>
<body>
<?php
$numOrden = Array("Alania","Alejo","Barzola","Bruno","Bastidas","Flo-
res","Canchumani","Córdova");
$contador = 0;
echo 'Numero de estudiantes asistentes<br/>';
do {
echo ($contador+1) . ".- ". $numOrden[$contador] . "<br/>";
$contador++;
} while ($contador < count($numOrden)); ?>
</body>
</html>
5.3. Ejecución del archivo númeroElementos.php:
Enunciado Nro. 06: Aplicación que permita la impresión de las tablas de multiplicar del 1 al 10, con
sus multiplicandos del 1 al 12, a su vez debe mostrar con una imagen y los
formatos respectivos.
5.4. Creación del proyecto: repetitivaDoWhile, Archivo: tablaMultiplicarDoWhile.php
5.5. Codificación del archivo tablaMultiplicarDoWhile.php:
<!DOCTYPE html>
<html>
<head><title>Estructura de control repetitiva Do - While</title></head>
<body bgcolor="#aabbff" text="#1f1fde" topmargin=20></body>
<h2>Tablas de multiplicar del 1 al 12<p><img src="tablaMultiplicar.jpg" width="380"
height="200"> </p></h2>
<section>
<?php
$ciclo1=1;
do{
13. echo "<table border=3><tr align=center><td colspan=5>Tabla de multiplicar del ".$ci-
clo1.":</td></tr>";
$ciclo2=1;
do{
$mult=$ciclo1*$ciclo2;
echo "<tr align=center><td>".$ciclo1."</td><td> x </td><td>".$ciclo2."</td><td> =
</td><td>".$mult."</td></tr>";
$ciclo2++;
}while($ciclo2<=12);
echo "</table>";
$ciclo1++;
}while($ciclo1<=10);
?>
</section>
<footer>
<h6>Recopilado por: MaleCita</h6>
</footer>
</html>
5.6. Ejecución del archivo tablaMultiplicarDoWhile.php: