Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/estrucutras control

De WikiEducator
Saltar a: navegación, buscar



Estructuras de Control

  • Las estructuras de control determinan el flujo de ejecución de un programa
  • Especifican el orden en que se ejecutarán las instrucciones.
  • Existen tres tipos principales de estructuras de control:
  1. Secuenciales: Ejecutan las instrucciones en orden, una tras otra.
  2. Selectivas: Permiten elegir entre diferentes caminos según una condición.
  3. Repetitivas: Ejecutan un bloque de instrucciones varias veces según una condición.
  • Para implementarlas, necesitamos operadores y condiciones, cuya sintaxis vamos a ir estudiando.
  • A modo de resumen, presentamos la siguiente tabla:
Resumen de las estructuras de control
Estructura de Control Sintaxis en PHP Ejemplo
Secuencial
{
   sentencia_1;
   sentencia_2;
   // ...
}
$num = rand(-10,20);
echo "Se ha generado el número $num";
Selectiva
if (expresion_booleana) {
   sentencia_1;
   sentencia_2;
}
sentencia_3;
$num = rand(-10,20);
if ($num < 0) {
   echo "El número $numero es negativo";
}else{
  echo "El número $numero es positivo";
}
Repetitiva
while (expresion_booleana) {
   sentencia_1;
   sentencia_2;
}
sentencia_3;
$num = 0;
$total = 0;
while ($num < 100) {
   $total = $total + $num;
   $num = $num + 1;
}
echo "Los primeros 100 números suman $total";
 Volver al índice


Instrucciones Secuenciales

  • En Este tipo de estructura de control, las instrucciones se ejecutan una tras otra de.
  • Las instrucciones se ejecutan en el orden en que aparecen, de forma secuencial, sin saltos ni repeticiones en el proceso.
Secuencial.png
  • La imagen muestra un flujo en el que cada paso se realiza de forma consecutiva, de arriba hacia abajo.

Ejemplos de Estructura Secuencial en PHP



Icon casestudy.gif
Operaciones matemáticas en secuencia
<?php
// Asignación de valores a variables
$a = 5;
$b = 10;
$c = $a + $b;  // Se suma $a y $b
$d = $c * 2;   // El resultado se multiplica por 2
echo "El resultado final es $d"; // Imprime el resultado
?>




Icon casestudy.gif
Mostrar mensajes
  • Ejemplo 2: Mostrar mensajes secuenciales
<?php
echo "Primero se ejecuta esta línea.<br />\n";
echo "Luego se ejecuta esta línea.<br />\n";
echo "Finalmente, se ejecuta esta última línea.";
?>



En ambos ejemplos
 * Las instrucciones se ejecutan en orden, sin interrupciones.
 * Cada línea de código sigue a la anterior y se ejecuta solo una vez.
 

Esta estructura es la más simple de las estructuras de control y establece la base para comprender el flujo de ejecución en un programa.


 Volver al índice


Selección con if

  • La estructura de control if permite evaluar una expresión booleana (una condición que puede ser verdadera o falsa).
  • Siempre la expresión booleana va entre paréntesis


Icon key points.gif

Puntos clave

Si la expresión booleana es true ejecutará un bloque de sentencias
Si no, o lo omitirá, o ejecutará otro si se especifica.



Estructura IF Estructura IF ELSE
Estructura if.png
Estructura if else.png
 Volver al índice

Sintaxis Básica

  • La estructura básica de if es:
if (expresion_booleana)
    Sentencia_1;
  • Si hay más de una sentencia a ejecutar cuando la condición es verdadera, debemos utilizar llaves `{ }` para agrupar el bloque de instrucciones, también lo podemos poner si solo hay una instruccion:
if (expresion_booleana) {
    Sentencia_1;
    Sentencia_2;
}
if (expresion_booleana){
    Sentencia_1;
}
La indentación
  • Es muy importante la indentación.
  • Consiste en dejar espacios o sangrías al inicio de cada línea de código dentro de un bloque.
  • Esto ayuda a visualizar la estructura y jerarquía de las instrucciones, facilitando la lectura y comprensión del código.
  • Una buena indentación es fundamental para evitar errores y mantener el código organizado0.

Expresiones booleanas


(Comment.gif: Las expresiones booleanas las veremos en el capítulo siguiente Expresiones.

Esto es una introducción para poderlas utilizar en las estructuras de control.

)




Icon define.gif
Definición

Es un conjunto de operandos y operadores

Qué se evalúa

y da como resultado un valor de un determinado tipo.



Icon key points.gif

Puntos clave

El tipo de la expresión lo establece el operador.
  • Será el tipo del valor devuelto.


Las expresiones booleanas se definen mediante los siguientes operadores:

Operadores de comparación.
Operadores booleanos o lógicos.
Operadores de comparación.
Operadores de comparación
Ejemplo Nombre Resultado
$x == $y Igual true, si son iguales (adapta tipos, lo analizaremos).
$x === $y Idéntico true, si son exactamente iguales (valor y tipo).
$x != $y Distinto true, si son diferentes (adapta tipos, lo analizaremos).
$x <> $y Distinto true, si son diferentes (adapta tipos, lo analizaremos).
$x !== $y No idéntico true, si son diferentes (valor y tipo).
$x < $y Menor que true, si $x es menor que $y.
$x > $y Mayor que true, si $x es mayor que $y.
$x <= $y Menor o igual que true, si $x es menor o igual que $y.
$x >= $y Mayor o igual que true, si $x es mayor o igual que $y.


(Comment.gif: PHP si comparo valores de diferentes tipo, va a realizar conversiones que veremos más adelante

)


Operadores Lógicos

Los operadores lógicos permiten combinar expresiones booleanas para realizar evaluaciones más complejas.

Operadores Lógicos
Operador Resultado
$x and $y true si $x y $y son true.
$x && $y true si $x y $y son true.
$x or $y true si uno de los dos es true (o los dos).
$x || $y true si uno de los dos es true (o los dos).
 !$x true si $x no es true (Es para negar algo=.
$x xor $y true si sólo uno de los dos es true (No muy usado).


Formularios


(Comment.gif: Los Formularios, constituyen un tema posterior

Realizamos una introducción para tener más opciones a la hora de proponer ejercicios
  • De esta forma podremos aportar valores por parte del usuario a la ejecución de los mismos

)



Ejemplos
Ejercicios
Realiza los siguientes ejercicios


Icon activity.jpg
Ejercicio 12: Selección simple
  • Generamos un número aleatoria entre 1 y 100
  • Si el número es par informamos que ha ganado un premio
  • En cualquier caso mostramos el número obtenido





Icon activity.jpg
Ejercicio 13: Selección simple 2
  • Generamos una edad entre 1 y 90 años
  • Mostraremos la edad generada
  • En caso de tener menos de 18 años informaremos de ello en un mensaje en rojo




 Volver al índice


If gráficamente (ordinagrama)

Estructura if.png

La imagen muestra el flujo de ejecución: si la expresión booleana es true', se ejecutan las sentencias dentro del bloque if; si es false, el flujo continúa después del bloque.

 Volver al índice


if...else

  • Podemos añadir una estructura else para especificar un bloque de sentencias que se ejecutará solo cuando la condición sea false.
if (expresion_booleana) {
    bloque_de_sentencias_1;
} else {
    bloque_de_sentencias_2;
}
Ejemplo de `if...else`
{{plegable|hidden|Miramos si una edad en mayor o menor de edad|
<source lang=php>
$edad = rand(1,35);
if ($edad >= 18) {
    echo "Eres mayor de edad.";
} else {
    echo "Eres menor de edad.";
}

}}

  • Si $edad es 18 o más, se imprime "Eres mayor de edad". Si $edad es menor que 18, se imprime "Eres menor de edad".
 Volver al índice


if...else gráfico (Ordinograma)

Estructura if else.png

La imagen muestra que si la condición es true, se ejecuta el bloque if; si es false, se ejecuta el bloque else.

Realiza los siguientes ejercicios



Icon activity.jpg
Ejercicio 14: Selección simple completa
  • Generamos una edad entre 1 y 90 años
  • El programa nos dirá si la edad generada es o no mayor de edad





Icon activity.jpg
Mostrar nombre mes
  • Generamos un número entre 1 y 15
  • Mostramos el número del mes y su nombre (el que correspondiente al número: enero, febrero, ...
  • En caso de ser mayor de 12 mostraremos mes incorrecto
  • Usamos la estructura
if (..)
       ...
 elseif
       ...
 elseif 
       ...
 ...
 else
     ....





Icon activity.jpg
Ecuación segundo grado
  • Se trata de encontrar dos valores para que la ecuación se satisfaga (que sea 0)
  • La ecuación que lo resuelve también se aporta
E1g.png
Podemos ver la ecuación que resuelve el problema
E1g analisis.png




 Volver al índice


`if...elseif...else`

  • La estructura `if...elseif...else` permite evaluar múltiples condiciones en secuencia. Solo se ejecutará el bloque correspondiente a la primera condición verdadera.
if (expresion_booleana_1) {
    bloque_sentencias_1;
} elseif (expresion_booleana_2) {
    bloque_sentencias_2;
} elseif (expresion_booleana_3) {
    bloque_sentencias_3;
} else {
    bloque_sentencias_4;
}
 Volver al índice

Ejemplo de `if...elseif...else`

$nota = 85;
if ($nota >= 90) {
    echo "Excelente";
} elseif ($nota >= 75) {
    echo "Bueno";
} elseif ($nota >= 50) {
    echo "Aprobado";
} else {
    echo "Reprobado";
}
  • En este ejemplo, dependiendo del valor de `$nota`, el programa imprime un mensaje diferente. Solo se ejecuta el bloque de la primera condición verdadera.

Visualización del `if...elseif...else`

Estructura if elseif.png

La imagen muestra cómo se evalúan varias condiciones en secuencia hasta que una sea verdadera. Si ninguna lo es, se ejecuta el bloque `else`.

Sintaxis Alternativa

  • PHP permite una sintaxis alternativa para if, else, y elseif, especialmente útil cuando se intercala código HTML:
if (condicion):
    Sentencia_1;
elseif (otra_condicion):
    Sentencia_2;
else:
    Sentencia_3;
endif;
  • Ejemplo con HTML:
<?php if (true): ?>
    <h1>Este contenido se mostrará</h1>
<?php else: ?>
    <h1>Este contenido no se mostrará</h1>
<?php endif; ?>
 Volver al índice


Ejercicio: Selección con html



Icon activity.jpg
  • Un formulario que pida edad y nombre
  • En función de la edad mostraremos un texto y otro
  • Si es menor de edad mostramos un mensaje en color azul de fondo que es menor de dad
  • En el caso de ser mayor de edad mostramos otro texto con otro color
  • Usamos la estructura
<?php if (true): ?>
    <h1>Este contenido se mostrará</h1>
<?php else: ?>
    <h1>Este contenido no se mostrará</h1>
<?php endif; ?>




Ejercicio Propuesto

  • Escribe un programa que evalúe la temperatura y muestre un mensaje según el rango:
 - Si la temperatura es menor que 0: "Hace mucho frío".
 - Si la temperatura está entre 0 y 15: "Hace frío".
 - Si la temperatura está entre 15 y 30: "Temperatura agradable".
 - Si la temperatura es mayor que 30: "Hace calor".
$temp = rand(-10, 40); // Genera una temperatura aleatoria
echo "La temperatura actual es $temp grados.\n";
 
// Escribe el código del ejercicio aquí
 Volver al índice


Operador Ternario

  • El operador ternario es una forma más compacta de expresar una estructura if-else en una única línea, ideal cuando se desea evaluar una condición y devolver un valor en función del resultado.
  • Esta expresión retorna un valor según la condición especificada.
(expresión_booleana) ? valor_si_true : valor_si_false;
  • El valor que retorna es el resultado de la expresión que corresponda según el valor de la condición. Esta expresión es equivalente a:
if (expresión_booleana)
    valor_si_true;
else
    valor_si_false;
  • Usar el operador ternario ayuda a escribir el código de forma más compacta y clara, especialmente en expresiones sencillas.
 Volver al índice

Ejemplo



Icon activity.jpg
Actividad
Determinar si un número aleatorio es par o impar




  • Este operador ternario se utiliza mucho en programación, y conviene entenderlo y habituarse a su uso para escribir código más conciso y claro.
 Volver al índice

Ejercicio 17(Con imágenes): Tirar un dado



Icon activity.jpg
Ejercicio 17(Con imágenes): Tirar un dado
  • Tenemos un index.php que nos muestra 6 dados según imagenes

Se trata de hacer un programa que apuestes por un dado El programa generará un valor aleatorio y me dirás si he ganado o perdido. Se puede usar un formulario como sigue:

   <form action="jugar.php" method="post">
       <div style="margin: 0px auto;width:100%; text-align: center">
       <button type="submit" name="dado" value="1">
           <img src="./imagenes/dado_1.png" alt="">
       </button>
       <button type="submit" name="dado" value="2">
           <img src="./imagenes/dado_2.png" alt="">
       </button>
       <button type="submit" name="dado" value="3">
           <img src="./imagenes/dado_3.png" alt="">
       </button>
       <button type="submit" name="dado" value="4">
           <img src="./imagenes/dado_4.png" alt="">
       </button>
       <button type="submit" name="dado" value="5">
           <img src="./imagenes/dado_5.png" alt="">
       </button>
       <button type="submit" name="dado" value="6">
           <img src="./imagenes/dado_6.png" alt="">
       </button>
   </form>

Al ser lo button de tipo submit, al presionar uno de ellos iremos al fichero jugar.php y podremos obtener el valor del botón presionado

  $dado = $_POST['dado'];


Icon key points.gif

Puntos clave

Si quieres un ejecto visual puedes recagar la página cada segundo y que vaya apareciendo los dados
  • Para ello has de añadir una etiqueta meta de tipo refresh en la cabecera de la página
 <meta http-equiv="refresh" content="1">
Esto hará que la página se cargue cada seguno
Dado animado.gif





}}

Selección con switch

  • El operador switch es un selector múltiple que permite evaluar el valor de una variable o expresión y ejecutar el bloque de código correspondiente al primer caso que coincida.
  • En PHP, la sentencia `case` puede albergar valores de cualquier tipo simple (números, cadenas, etc.), no está limitada a enteros como en otros lenguajes.
  • Esta estructura es útil cuando tenemos múltiples casos excluyentes y queremos evitar múltiples `if-else`.

Sintaxis

La sintaxis básica de un `switch` en PHP es:

switch ($valor) {
    case "valor1":
        // acciones
        break;
    case "valor2":
        // acciones
        break;
    case "valorn":
        // acciones
        break;
    default:
        // acciones si no hay coincidencia
}
 Volver al índice

Notas Importantes

  • El switch busca la primera coincidencia de $valor con los valores de los casos (case) y ejecuta todas las instrucciones posteriores hasta encontrar un break.
  • Si no se coloca un break, continuará ejecutando los casos siguientes, incluso si no coinciden.

Ejemplo Básico



Icon casestudy.gif
Ejemplo: Identificar un Nombre
  • Escribe un programa que evalúe si una variable `$nombre` es "María", "Pedro", o cualquier otro nombre.



 Volver al índice

Ejercicio 16: Selección con switch


  • Genera un número de mes de forma aleatoria.
  • Muestra el número de días que tiene el mes.
  • Genera un mensaje informativo con el texto "El mes X tiene XXX días"
  • Realiza usando `switch`:

(Comment.gif: Intenta que se muestre también el nombre del mes junto con el número de días )


$mes = rand(1, 15);
switch ($mes) {
    case 1:
        $dias=31;
        break;
    case 2:
        $dias=29;
        break;
    // Continúa con los demás casos
    default:
        $dias =  "Mes incorrecto<br />";
}
 Volver al índice

}}

Ejemplo con Rango de Valores

  • En algunos casos, queremos evaluar rangos de valores (por ejemplo, edades, calificaciones). En PHP, esto se logra usando expresiones booleanas dentro de los `case` y configurando el `switch` para evaluar `true`.



Icon casestudy.gif
Ejemplo: Nivel de Madurez
  • Generar una edad aleatoria entre 0 y 110 y clasificarla según el nivel de madurez:
 - 0–2: Bebé
 - 3–10: Niñez
 - 11–17: Adolescencia
 - 18–26: Juventud
 - 27–59: Adultez
 - 60–80: Experimentado
 - Más de 80: Disfrutando la vida



 Volver al índice

Casos Curiosos en PHP

  • PHP en una comparación, adapta los tipos a comparar (si puede).
  • Simpre que compare un entero con un booleano, convertirá el entero a booleano.
  • En PHP, si especificamos expresiones booleanas dentro de un case, deberíamos de establecer también un booleano en el switch para evaluar `true`.
Esto evita errores de interpretación con valores como `0`.
    • Ejemplo Problemático**:
<?php
$nota = 0;
 
switch ($nota) {
    case ($nota >= 0 && $nota <= 3):
        echo "Nota deficiente";
        break;
    case 4:
        echo "Nota insuficiente";
        break;
    case 5:
        echo "Nota suficiente";
        break;
    case ($nota > 6 && $nota < 9):
        echo "Nota notable";
        break;
    case ($nota >= 9):
        echo "Nota sobresaliente";
        break;
}
?>
  • Si `$nota = 0`, el primer caso no se ejecuta porque PHP convierte `0` a booleano `false`, lo que genera errores lógicos.
    • Solución Recomendada**:
<?php
$nota = rand(0, 10);
 
switch (true) {
    case ($nota >= 0 && $nota <= 3):
        echo "Nota deficiente";
        break;
    case $nota == 4:
        echo "Nota insuficiente";
        break;
    case $nota == 5:
        echo "Nota suficiente";
        break;
    case $nota == 6:
        echo "Nota bien";
        break;
    case ($nota >= 7 && $nota <= 8):
        echo "Nota notable";
        break;
    case ($nota >= 9):
        echo "Nota sobresaliente";
        break;
}
?>
 Volver al índice


  • Generar un número aleatorio para el mes (entre 1 y 12) y mostrar el número de días correspondientes. Si el número no corresponde a un mes válido, informar al usuario.

Selección con el operador match

  • El operador match aparece en php en la versión 8
  • Es una opción depurada y para casos concretos que puede sustituir a la estructura switch-case
  • A diferencia del switch-case, es un operador, y por lo tanto devuelve un valor.
Su sintaxis
$variable = match($valor){
valor_rama_1 => valor_retornado_rama_1,
valor_rama_2 => valor_retornado_rama_2,
....
default => valor_retornado_si_ninguna_coincidencia_anterior
};


Icon key points.gif

Puntos clave

  • 1.- Lo que retorne lo asigno a una variable
$variable = match ($valor){
 ....
};
  • 2.- En cada rama tengo dos partes separadas por el operador =>:
    • El valor con el que comparo
    • El valor que retorno si hay un match (coincidencia)
valor_rama_1 => valor_retornado_rama_1,
  • 3. Puedo tener una rama de default
default => valor_retornado_si_ninguna_coincidencia_anterior
  • 4. Al final hay un punto y coma, ya que termina la asignación
$variable = match ($valor){
 ....
};




Icon key points.gif

Operador match

  • 1.- Siempre retornará un valor.
  • 2.- Evaluamos un valor, al igual que con switch-case.
  • 3.- En cada una de las ramas puedo establecer varias condiciones separadas por comas, intuyendo en ello una or lógica.
  • 4.- Igual que en switch-case existe la rama default.
  • 5.- Como va a ser parte de una asignación, debe de terminar en ; (punto y comoa).
  • 6.- Las comparaciones que hace son estrictas a diferenica del switch-case que hace comparaciones no estrictas


  • A continuación podemos ver ejemplos
$numero_mes = rand(1,15);
$nombre_mes = match ($numero_mes){
	1=>"Enero",
	2=>"Febrero",
	.....
	default => "Mes incorrecto"
};
echo "El mes $numero_mes es $nombre_mes"
  • Aquí vemos el uso de varios valores posibles en la comparación
```php
$numero_mes = rand(1,15);
$numero_dias=match($mes){  
    1,3,5,7,8,10,12 => 31,  
    4,6,8,11 =>30,  
    2 => 28  
};  
echo "El mes $mes tiene $numero_dias días";
 Volver al índice
Ejercicio


Icon activity.jpg
  • Usando el match y un formulario simple, realiza una calculadora con las operaciones básica

Form calculadora basica.png

  • Al seleccionar calcular nos mostrará el resultado

Resultado.png

  • En caso de que el valor no sea numérico, asignaremos un número aleatorio del 1 al 100




Índice de contenidos

Introducción

En este tema aprenderemos tres estructuras de control que permiten repetir bloques de código:

  1. while: Repite un bloque mientras una condición sea verdadera.
  2. do...while: Similar al while, pero asegura que el bloque se ejecute al menos una vez.
  3. for: Útil cuando conocemos de antemano el número de iteraciones necesarias.
  • Empecemos por la estructura while, explicando su funcionamiento básico y resolviendo ejercicios prácticos.

Iteración while

Un bucle while repite un bloque de código mientras una condición sea verdadera. Para evitar errores, debemos prestar atención a tres aspectos fundamentales:

  1. Inicializar la variable de control antes de entrar en el bucle.
  2. Actualizar la variable de control dentro del bucle para evitar bucles infinitos.
  3. Realizar correctamente la evaluación de la condición utilizando operadores de comparación (<, <= , >, >= , ...).
Sintaxis
 while (expresion_booleana){
   //instrucciones del bloque
 }


Icon key points.gif

Puntos clave

Estructura repetitiva
//Inicializamos variables de la condición
$contador = 0;
 
//Establecemos la condición cuidando mucho
//los extremos (< o <= ...)
while ($contador < 10){
 
     //Actualizamos la variable dentro del bucle
     $contador ++ //comentar este operador
 
     //Realizamos las acciones 
     echo "Estoy en la interación $contador<br />"
 
}




Icon activity.jpg
Uso de while
  • Mostrar la suma de los primeros 25 números naturales.
  • Se quiere ver el número de iteración y la suma hasta ese momento (es decir, queremos ver cien líneas).
  • Cada iteración debe aparecer en numeración ordinal con el símbolo ª (por ejemplo, 1ª, 2ª, ...).
  • Al final mostraremos el total






Icon activity.jpg
Uso de while
  • Generamos un número aleatorio entre 1 y 15.
  • Mostramos un mensaje con el número hasta que el número que salga sea el 13.
  • Podría ser que el número nos salga el primero en cuyo caso no habrá ningún mensaje
  • Mostramos cuantos números se han generado y la suma de los mismos
Posible solución
<?php
//Generamos un número aleatorio entre 1 y 15.
//Establecemso un contador 
//para ver cuántas veces intermos
 
//Establemos el bucle
while ($num !=13){
}
//Mostramos la información final
?>







 Volver al índice


Iteracción do-while

  • Este tipo de bucle donde seguro que al menos se ejecuta un iteracción
  • Respecto al anterior nos ahorra una comparación.
  • La sintaxis de esta estructura es la siguiente:
do {
  //Acciones
}while (expresión_booleana);


Icon key points.gif

Puntos clave

  • La condición va al final de la estructura
  • Observa que lleva un punto y coma al final
  • El conjunto de las instrucciones del bloque se ejecuta al menos una vez
  • El bloque se ejecuta mientras se cumpla la condición




Icon activity.jpg
Ejemplo de uso
Generar un número hasta que salga el 13
mostrar las veces que hemos tenido que generar número



Ejercicios


Icon activity.jpg
Usando do-while
  • Modifica el ejercicio anterior usando un do-wile
  • En este caso el número 13 también queremos que forme parte de la lista y se incluya tanto en la suma como en la contabilización,




Ejercicio 19: Genera Números de Bonoloto



Icon activity.jpg
  • Generamos 5 números para la bonoloto
  • Importante es asegurar que los números no se puedan repetir
  • Puedes usar este css para los estilos




Ejercicio 19 :Genera una tabla ASCII completa



Icon activity.jpg
Ejercicio 19 :Genera una tabla ASCII completa
  • Creamos una tabla ascii, desde el 33 hasta el 126 código
  • Puedes (debes) usar estas funciones (una de ellas, o prueba a hacerlo con las dos)
chr($numero) //retorna el carácter en ascii del código que se pasa como argumento
printf ("%d - %c", $numero, $numero); //Esta función
                       // visualiza con formato decimal (%d) y carácter  (%c), 
                       //los valores pasados como últimos argumentos
  • Genera la salida en una tabla html
  • Intenta dar un número de columas (por ejemplo 6 columnas






Icon activity.jpg
Generar una password
Programa para generar una passoword
  • Generamos una password con caracteres ascii (ver tabla anterior
  • La password debe de tener 7 caracteres
  • Los caracteres se puede repetir
  • Al menos 2 de ellos han de ser no alfanuméricos




 

}}

Iteración for

  • Es un bucle de tipo contador
for (expresion_inicial; condicion;expresion_actualizar){
sentencias;
}



Icon key points.gif

Partes de la estructura

Estructura for
  • tiene tres partes
1.- expresion_inicial
Se ejecuta una sola vez al comienzo del bucle. se usa para inicializar variables'
2.-condición
Es una expresión booleana que se evalúa en cada interacción.
Si da un valor false, ya no se ejecuta ninguna vez
Si no hay expresión se toma como true
 En este caso para que el bucle no sea infinito
 deberá llevar algún break (instrucción de terminación de bloque)
 en algún momento
3.-Incremento de la expresión inicial
Marca el paso o cómo se va modificando la variable de control en cada iteración




Icon activity.jpg
Ejemplo de la estructura
  • Realiza la suma de los 100 primeros números
//Inicializamos la variable 
//que contendrá el total
$suma =0;
//Desde $numero = 0 y mientras  $numero sea menor que 100
//Incrementando en cada iteración número en una unidad
for ($numero=0;$numero<100;$numero++){
    //realizo la suma con el valor de $numero
    $suma = $suma + $numero;
}
echo "<h2>La suma de los 100 primeros números es $suma</h1>";




  • Esta estructura se usa con mucha frecuencia


Icon key points.gif

Cuándo usarla

Siempre que sepamos en número de veces que vamos a realizar una acción usaremos esta estructura



Ejercicios


Icon activity.jpg
  • Simula tirar un dado 100,000 veces.
  • Cuenta cuántas veces aparece cada número (1-6).
  • Prueba a hacerlo tanto con rand como con mt_rand.
  • Puedes mostrar el resultado usando las imágenes de dados para darle un aspecto más visual:




Ejercicio 19 :Genera una tabla ASCII completa



Icon activity.jpg
Ejercicio 19 :Genera una tabla ASCII completa
  • Creamos una tabla ascii, desde el 33 hasta el 126 código
  • Puedes (debes) usar estas funciones (una de ellas, o prueba a hacerlo con las dos)
chr($numero) //retorna el carácter en ascii del código que se pasa como argumento
printf ("%d - %c", $numero, $numero); //Esta función
                       // visualiza con formato decimal (%d) y carácter  (%c), 
                       //los valores pasados como últimos argumentos
  • Genera la salida en una tabla html
  • Intenta dar un número de columas (por ejemplo 6 columnas




Ejercicio 19 :Sistemas numéricos



Icon activity.jpg
  • Creamos una tabla con los la representación de sistemas numéricos
  • Mostraremos en binario, octal, hexadecimal y decimal
  • Los números desde el 0 hasta el 50



Ejercicio 19 :Tabla de multiplicar completa



Icon activity.jpg
  • Creamos una tabla con las multiplicaciones
  • La imagen muestra el objetivo que pretendemos:

Tabla multiplicar.png