Kodokon kodokon.com

Condiciones y bucles

Haz que tus scripts reaccionen con if y match, y luego repite acciones con for, foreach y while.

9 min · 3 preguntas

Abrir esta lección en Kodokon

Una condición permite al script elegir un camino: "si esto es verdadero, haz aquello; si no, haz otra cosa". La palabra clave if evalúa una expresión que da true o false, usando los operadores de comparación: > (mayor que), < (menor que), >=, <=, === (igual, mismo valor Y mismo tipo) y !== (distinto). elseif añade otra prueba si la anterior falló, y else se ejecuta cuando ninguna prueba tuvo éxito. Las pruebas se leen de arriba abajo: gana la primera que sea verdadera.

PHP
<?php

$temperature = 12;

if ($temperature > 25) {
    echo "It's hot.";
} elseif ($temperature > 15) {
    echo "It's mild.";
} else {
    echo "Grab a jacket!";
}
Aquí, solo se ejecuta el bloque else.

Cuando comparas la misma variable con varios valores concretos, la expresión match es más elegante. Compara la variable con cada caso (comparación estricta, valor y tipo) y devuelve un valor directamente, que puedes almacenar en una variable. El caso default actúa como red de seguridad cuando ningún valor coincide.

PHP
<?php

$day = "saturday";

$message = match ($day) {
    "saturday", "sunday" => "It's the weekend!",
    "monday" => "Hang in there, back to work.",
    default => "Have a good weekday.",
};

echo $message;
match devuelve un valor, almacenado aquí en $message.

Un bucle repite un bloque de instrucciones varias veces, sin copiar y pegar el código. El bucle for es ideal cuando conoces de antemano el número de vueltas. Se lee en tres partes, separadas por punto y coma: el inicio ($i = 1), la condición de continuación ($i <= 5, sigue mientras esto sea verdadero) y el paso ($i++, que suma 1 a $i en cada vuelta).

PHP
<?php

for ($i = 1; $i <= 5; $i++) {
    echo "Round number {$i}<br>";
}
Cinco vueltas, del 1 al 5 inclusive.

Otros dos bucles completan la caja de herramientas. foreach recorre un array (una lista de valores, que veremos en la próxima lección) y te entrega cada elemento uno tras otro. while repite su bloque mientras su condición siga siendo verdadera: depende de ti cambiar la situación dentro del bucle para que acabe deteniéndose.

PHP
<?php

$fruits = ["apple", "pear", "kiwi"];

foreach ($fruits as $fruit) {
    echo "Fruit: {$fruit}<br>";
}

$countdown = 3;

while ($countdown > 0) {
    echo "{$countdown}...<br>";
    $countdown--;
}

echo "Go!";
foreach recorre una lista, while hace la cuenta atrás.

Prueba de conocimientos

Comprueba que has retenido los puntos clave de esta lección.

  1. ¿Cuándo se ejecuta el bloque else?
    • Siempre, justo después del bloque if
    • Solo si ninguna condición anterior es verdadera
    • Solo si la condición del if es verdadera
  2. ¿Qué es algo que distingue a match de if?
    • Devuelve un valor directamente
    • Solo puede comparar números
    • Ejecuta todos los casos uno tras otro
  3. ¿Qué ocurre si la condición de un while se queda verdadera para siempre?
    • El bucle se detiene automáticamente después de 100 vueltas
    • PHP ignora el bucle y sigue adelante
    • El bucle se ejecuta sin fin y bloquea el script