Diferencia entre revisiones de «Plantilla:ManuelRomero/PHP/EstructurasControl»

De WikiEducator
Saltar a: navegación, buscar
(Estructuras de Control)
(Visualización del `if...else`)
 
(10 revisiones intermedias por el mismo usuario no mostrado)
Línea 3: Línea 3:
 
*  Especifican  el orden en que se ejecutarán las instrucciones.
 
*  Especifican  el orden en que se ejecutarán las instrucciones.
  
*Existen tres tipos principales de estructuras de control:
+
*Existen '''tres tipos principales de estructuras de control''':
 
# '''Secuenciales''': Ejecutan las instrucciones en orden, una tras otra.
 
# '''Secuenciales''': Ejecutan las instrucciones en orden, una tras otra.
 
# '''Selectivas''': Permiten elegir entre diferentes caminos según una condición.
 
# '''Selectivas''': Permiten elegir entre diferentes caminos según una condición.
Línea 19: Línea 19:
 
! width="150px" | Ejemplo
 
! width="150px" | Ejemplo
 
|-
 
|-
| **Secuencial**
+
| '''Secuencial'''
 
||
 
||
 
<source lang=php>
 
<source lang=php>
Línea 34: Línea 34:
 
</source>
 
</source>
 
|-
 
|-
| **Selectiva**
+
| '''Selectiva'''
 
||
 
||
 
<source lang=php>
 
<source lang=php>
Línea 53: Línea 53:
 
</source>
 
</source>
 
|-
 
|-
| **Repetitiva**
+
| '''Repetitiva'''
 
||
 
||
 
<source lang=php>
 
<source lang=php>
Línea 73: Línea 73:
 
</source>
 
</source>
 
|}
 
|}
 +
=== 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.
 +
 +
[[Archivo:secuencial.png|center]]
 +
 +
*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 ====
 +
<br />
 +
{{MRM_Ejemplo|Title=Operaciones matemáticas en secuencia|
 +
<source lang=php>
 +
<?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
 +
?>
 +
</source>
 +
}}
 +
{{MRM_Ejemplo|Title=Mostrar mensajes|
 +
*Ejemplo 2: Mostrar mensajes secuenciales
 +
<source lang=php>
 +
<?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.";
 +
?>
 +
</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.
 +
=== 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:
  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í