Diferencia entre revisiones de «Plantilla:ManuelRomero/PHP/EstructurasControl»
De WikiEducator
(→Estructuras de Control) |
(→Visualización del `if...else`) |
||
(8 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 74: | Línea 74: | ||
|} | |} | ||
=== Instrucciones Secuenciales === | === Instrucciones Secuenciales === | ||
− | *En | + | *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. | ||
[[Archivo:secuencial.png|center]] | [[Archivo:secuencial.png|center]] | ||
Línea 81: | Línea 82: | ||
==== Ejemplos de Estructura Secuencial en PHP ==== | ==== Ejemplos de Estructura Secuencial en PHP ==== | ||
− | + | <br /> | |
− | + | {{MRM_Ejemplo|Title=Operaciones matemáticas en secuencia| | |
<source lang=php> | <source lang=php> | ||
<?php | <?php | ||
Línea 93: | Línea 94: | ||
?> | ?> | ||
</source> | </source> | ||
− | + | }} | |
+ | {{MRM_Ejemplo|Title=Mostrar mensajes| | ||
*Ejemplo 2: Mostrar mensajes secuenciales | *Ejemplo 2: Mostrar mensajes secuenciales | ||
<source lang=php> | <source lang=php> | ||
<?php | <?php | ||
− | echo "Primero se ejecuta esta línea.\n"; | + | echo "Primero se ejecuta esta línea.<br />\n"; |
− | echo "Luego se ejecuta esta línea.\n"; | + | echo "Luego se ejecuta esta línea.<br />\n"; |
echo "Finalmente, se ejecuta esta última línea."; | echo "Finalmente, se ejecuta esta última línea."; | ||
?> | ?> | ||
</source> | </source> | ||
− | + | }} | |
− | + | <br /> | |
− | + | ;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. | + | 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á, u otro si se especifica. | ||
+ | |||
+ | ==== 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, también lo podemos poner si solo hay una instruccion: | ||
+ | <source lang=php> | ||
+ | if (expresion_booleana) { | ||
+ | Sentencia_1; | ||
+ | Sentencia_2; | ||
+ | } | ||
+ | if (expresion_booleana){ | ||
+ | Sentencia_1; | ||
+ | } | ||
+ | |||
+ | </source> | ||
+ | ;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. | ||
+ | |||
+ | ;Ejemplos | ||
+ | {{plegable|hidden|Programa que obtien el valor absoluto de un número| | ||
+ | <source lang=php> | ||
+ | $num = rand(-10, 20); | ||
+ | if ($num < 0) { | ||
+ | $num = -$num; | ||
+ | } | ||
+ | echo "El valor absoluto del número es $num"; | ||
+ | |||
+ | }} | ||
+ | |||
+ | </source> | ||
+ | |||
+ | |||
+ | ==== 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> | ||
+ | |||
+ | {{plegable|hidden|Miramos si una edad en mayor o menor de edad| | ||
+ | $edad = rand(1,35); | ||
+ | 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|500px]] | ||
+ | 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|700px]] | ||
+ | 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> |
Última revisión de 10:13 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á, u otro si se especifica.
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.
- Ejemplos
{{plegable|hidden|Programa que obtien el valor absoluto de un número|
$num = rand(-10, 20); if ($num < 0) { $num = -$num; } echo "El valor absoluto del número es $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`
{{plegable|hidden|Miramos si una edad en mayor o menor de edad| $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".
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í