Diferencia entre revisiones de «Plantilla:ManuelRomero/PHP/EstructurasControl»
De WikiEducator
(→Ejemplos de Estructura Secuencial en PHP) |
(→Ejemplos de Estructura Secuencial en PHP) |
||
Línea 111: | Línea 111: | ||
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. | 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. | ||
+ | === Selección con `if` === | ||
+ | *La estructura de control **if** permite evaluar una **expresión booleana** (una condición que puede ser verdadera o falsa). En función de si la expresión es '''true''' o '''false''', el programa ejecutará un bloque de sentencias o lo omitirá. | ||
+ | |||
+ | ==== Sintaxis Básica ==== | ||
+ | *La estructura básica de `if` es: | ||
+ | <source lang=php> | ||
+ | if (expresion_booleana) | ||
+ | Sentencia_1; | ||
+ | </source> | ||
+ | |||
+ | *Si hay más de una sentencia a ejecutar cuando la condición es verdadera, debemos utilizar llaves `{ }` para agrupar el bloque de instrucciones: | ||
+ | <source lang=php> | ||
+ | if (expresion_booleana) { | ||
+ | Sentencia_1; | ||
+ | Sentencia_2; | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | ==== Ejemplo Básico ==== | ||
+ | <source lang=php> | ||
+ | $num = rand(-10, 20); | ||
+ | if ($num < 0) { | ||
+ | echo "El número es negativo, reasignamos el valor a 0."; | ||
+ | $num = 0; | ||
+ | } | ||
+ | echo "El valor del número es $num"; | ||
+ | </source> | ||
+ | |||
+ | *En este ejemplo, si `$num` es menor que 0, el programa reasigna su valor a 0. Si la condición es falsa, simplemente muestra el valor original de `$num`. | ||
+ | |||
+ | ==== Visualización del `if` ==== | ||
+ | [[Archivo:estructura_if.png|center]] | ||
+ | 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. | ||
+ | |||
+ | ==== `if...else` ==== | ||
+ | *Podemos añadir una estructura `else` para especificar un bloque de sentencias que se ejecutará solo cuando la condición sea **false**. | ||
+ | <source lang=php> | ||
+ | if (expresion_booleana) { | ||
+ | bloque_de_sentencias_1; | ||
+ | } else { | ||
+ | bloque_de_sentencias_2; | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | ==== Ejemplo de `if...else` ==== | ||
+ | <source lang=php> | ||
+ | $edad = 18; | ||
+ | if ($edad >= 18) { | ||
+ | echo "Eres mayor de edad."; | ||
+ | } else { | ||
+ | echo "Eres menor de edad."; | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | *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". | ||
+ | |||
+ | ==== Visualización del `if...else` ==== | ||
+ | [[Archivo:estructura_if_else.png|center]] | ||
+ | La imagen muestra que si la condición es **true**, se ejecuta el bloque `if`; si es **false**, se ejecuta el bloque `else`. | ||
+ | |||
+ | ==== `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. | ||
+ | |||
+ | <source lang=php> | ||
+ | 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; | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | ==== Ejemplo de `if...elseif...else` ==== | ||
+ | <source lang=php> | ||
+ | $nota = 85; | ||
+ | if ($nota >= 90) { | ||
+ | echo "Excelente"; | ||
+ | } elseif ($nota >= 75) { | ||
+ | echo "Bueno"; | ||
+ | } elseif ($nota >= 50) { | ||
+ | echo "Aprobado"; | ||
+ | } else { | ||
+ | echo "Reprobado"; | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | *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` ==== | ||
+ | [[Archivo:estructura_if_elseif.png|center]] | ||
+ | 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: | ||
+ | <source lang=php> | ||
+ | if (condicion): | ||
+ | Sentencia_1; | ||
+ | elseif (otra_condicion): | ||
+ | Sentencia_2; | ||
+ | else: | ||
+ | Sentencia_3; | ||
+ | endif; | ||
+ | </source> | ||
+ | |||
+ | *Ejemplo con HTML: | ||
+ | <source lang=php> | ||
+ | <?php if (true): ?> | ||
+ | <h1>Este contenido se mostrará</h1> | ||
+ | <?php else: ?> | ||
+ | <h1>Este contenido no se mostrará</h1> | ||
+ | <?php endif; ?> | ||
+ | </source> | ||
+ | |||
+ | ==== 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". | ||
+ | <source lang=php> | ||
+ | $temp = rand(-10, 40); // Genera una temperatura aleatoria | ||
+ | echo "La temperatura actual es $temp grados.\n"; | ||
+ | |||
+ | // Escribe el código del ejercicio aquí | ||
+ | </source> |
Revisión de 10:02 12 nov 2024
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:
- Secuenciales: Ejecutan las instrucciones en orden, una tras otra.
- Selectivas: Permiten elegir entre diferentes caminos según una condición.
- 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:
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"; |
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.
- 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
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 ?>
|
Mostrar mensajes
| |
<?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.
Selección con `if`
- La estructura de control **if** permite evaluar una **expresión booleana** (una condición que puede ser verdadera o falsa). En función de si la expresión es true o false, el programa ejecutará un bloque de sentencias o lo omitirá.
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:
if (expresion_booleana) { Sentencia_1; Sentencia_2; }
Ejemplo Básico
$num = rand(-10, 20); if ($num < 0) { echo "El número es negativo, reasignamos el valor a 0."; $num = 0; } echo "El valor del número es $num";
- En este ejemplo, si `$num` es menor que 0, el programa reasigna su valor a 0. Si la condición es falsa, simplemente muestra el valor original de `$num`.
Visualización del `if`
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.
`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`
$edad = 18; 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".
Visualización del `if...else`
La imagen muestra que si la condición es **true**, se ejecuta el bloque `if`; si es **false**, se ejecuta el bloque `else`.
`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; }
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`
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; ?>
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í