Plantilla:ManuelRomero/PHP/EstructurasControl

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";

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.

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`

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.

`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`

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`.

`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`

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; ?>

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í