Lección 5: Condicionales

Los condicionales son una herramienta esencial en cualquier lenguaje de programación. Sirve para ejecutar instrucciones dependiendo de unos condicionales.

if (condición) {
    ...
}

En el ejemplo puedes ver dentro del if que estoy realizando una pregunta: ¿Es 2 mayor que 0? Es cierto, por lo tanto se imprimirá el segundo echo.

echo "Inicio \n";
if (2 > 0) {
    echo "Entro en el condicional \n";
}
echo 'Fin';
// Inicio
// Entro en el condicional
// Fin

En el caso de no cumplirse nunca entrará: ¿2 es mayor que 1000? Es falso, por lo tanto nunca se ejecutará.

echo "Inicio \n";
if (2 > 1000) {
    echo "Entro en el condicional \n";
}
echo 'Fin';
// Inicio
// Fin

Tipos de condicionales

Las condicionales son símbolos aritméticos. Si la lógica es cierta, entrará. En caso contrario no se cumplirá y nunca llegará a ejecutarse el interior del if o while (ambos usan condicionales). Además podremos concadenar todas las condicionales que necesitemos. El uso de paréntesis está permitido.

Símbolo Explicación Ejemplo
> es mayor que if (1 > 0)
< es menor que if (1 < 0)
&& y if (1 > 0 && 67 > 0)
|| o if (1 > 10 || 67 > 0)
! no if (!(1 > 0))
== es igual en valor if ('3' == 3)
=== es igual en valor y tipo if ('3' === '3')
!= no es igual if ('Doctor' != 'Who')
!== no es igual en valor o tipo if ('Doctor' !== 'Who')
>= es mayor o igual que if (10 >= 10)
<= es menor o igual que if (10 <= 20)
<=> -1, 0 y 1 dependiendo de los valores si son superados (10 <=> 20) // 1
True Verdad if (True)
False Falso if (False)
if (10 > 2 && True && 'HBO' != 'Netflix') {
    echo 'Entro seguro';
}
// Entro seguro

else

Existe una herramienta que nos ayudará a que solo una serie de instrucciones se ejecuten.

if (condición) {
    ...
} else {
    ...
}

En caso de cumplirse la condición entrará en las primeras llaves ({}), en caso contrario entrará en las segundas llaves. Pero nunca en ambas.

if ('Ghibli' == 'Ghibli') {
    echo 'Bienvenido';
} else {
    echo 'No eres bien recibido'
}
// Bienvenido
if ('Estudio' == 'Ghibli') {
    echo 'Bienvenido';
} else {
    echo 'No eres bien recibido'
}
// No eres bien recibido

elseif

Es posible tener varios condicionales.

if (condición) {
    ...
} elseif (condición) {
    ...
}
if ('Michael Jackson' == 'Moonwalker') {
    echo 'Gran baile';
} elseif ('Moonwalker' == 'Moonwalker') {
    echo 'Legendario';
}
// Legendario

Si se cumple la primera, entrará e ignorará al segunda. Si no se cumple la primera pero la segunda sí, entrará en la segunda. Si no se cumple ninguna, no entrará en ninguna.

Al añadir un else al final le daremos un caso “por defecto”. Si no se cumpliera ninguna condicional iría automáticamente.

if (condición) {
    ...
} elseif (condición) {
    ...
} else {
    ...
}
if ('Michael Jackson' == 'Moonwalker') {
    echo 'Gran baile';
} elseif ('Michael Jackson' == 'Billie Jean') {
    echo 'Gran canción';
} else {
    echo 'Rey del Pop';
}
// Rey del Pop

Se admite tanto elseif como else if. Salvo como sintaxis alternativa, que debe estar junto: elseif:.

Sintaxis alternativa

Para facilitar la integración con HTML dispones de una sintaxis alternativa y un poco más agradable al ojo.

<html>
    <body>
    <?php if (condición): ?>
    // Código que sea cierto
    <?php else: ?>
    // Código que se ejecutará si no es cierto.
    <?php endif; ?>
    </body>
</html>

o con un elseif.

<html>
    <body>
    <?php if (condición): ?>
    // Código que sea cierto
    <?php elseif (condición): ?>
    // Código que se ejecutará si no es cierto.
    <?php else: ?>
    // Código que se ejecutará si no es cierto.
    <?php endif; ?>
    </body>
</html>

Forma abreviada (Operador ternario)

Es posible ejecutar en una sola instrucción con if con un else. Si estas empezando no te recomiendo usarla, pero no la olvides.

<?php (condicional) ? 'Valor si se cumple' : 'Valor si no se cumple'; ?>
<?php echo (5 > 10) ? 'Es verdad' : 'Es mentira'; ?>

Switch

La funcionalidad de switch es prácticamente igual a if salvo que es más limitada, solo admite la condicional de igualación.

switch ($variable) {
    case 0:
        ...
        break;
    case 1:
        ...
        break;
    case 2:
        ...
        break;
    default:
        ...
        break;
}

Una equivalencia entre ambos.

$num = 1;
if ($num == 0) {
    echo "num es igual a 0";
} elseif ($num == 1) {
    echo "num es igual a 1";
} elseif ($num == 2) {
    echo "num es igual a 2";
} else {
    echo "No se a que es igual";
}
// num es igual a 1

switch ($num) {
    case 0:
        echo "num es igual a 0";
        break;
    case 1:
        echo "num es igual a 1";
        break;
    case 2:
        echo "num es igual a 2";
        break;
    default:
        echo "No se a que es igual";
        break;
}
// num es igual a 1

Strings

Antes de cerrar la lección quiero dejarte algunas funciones que te pueden ser de ayuda cuando trabajas con String. Profundizaremos en las siguientes lecciones.

str_contains (¿Contiene este texto este otro texto?)

if (str_contains('La duda es uno de los nombres de la inteligencia', 'duda')) {
    // Entra
}

str_starts_with (¿Empieza este texto con este otro texto?)

if (str_starts_with('La duda es uno de los nombres de la inteligencia', 'La duda es')) {
    // Entra
}

str_end_with (¿Termina este texto con este otro texto?)

if (str_end_with('La duda es uno de los nombres de la inteligencia', 'inteligencia')) {
    // Entra
}
Actividad 1
  • Realiza un formulario con los siguientes datos: nombre, telefono, email y mensaje.
  • Cuando se pulse en enviar debe mostrar la siguiente plantilla.

"Hola nombre!

Te voy a enviar spam a correo y te llamaré por la madrugada a telefono.

mensaje

Enviado desde un iPhone"

Actividad 2

1. Escribe en un textarea una lista de nombres.

2. Cuando pulses un botón debes mostrar un nombre aleatorio. (Será el encargado de sacar al perro)

3. Muestra con la siguiente plantilla: nombre saca al perro.

Ejemplo en textarea:

Batman

Superman

Ironman

Pescanova

Cuando es pulsado el botón...

Ironman saca al perro.

Actividad 3
  • Muestra la siguiente adivinanza:

"Esta cosa se devora a todas las cosas;

Pájaros, bestias, árboles, flores;

Carcome el hierro, muerde el acero;

Muele duras piedras y las reduce a harina;

Mata al rey, arruina la ciudad,

Y derriba a la montaña."

  • En un input, pide la respuesta.
  • Añade un botón de submit.
  • Si se pulsa el botón debes comprobar si ha acertado. La respuesta es: Tiempo.
  • Si acierta felicítale.
  • Si pierde, muestra la respuesta y cómetelo.
Actividad 4
  • Vuelve a realizar una calculadora de IVA, pero en esta ocasión la cantidad no estará guardada en una variable sino que nos la proporcionará el usuario.

Pista: Para calcular el IVA debes aplicar la siguiente formula precio / 1.21.

Actividad 5
  • Crea un input y un botón de submit.
  • Rellena el campo con el nombre de una película.
  • Cuando se puse debe guardar el contenido en un array.
  • Imprime el resultado en una tabla.
Actividad 6
  • Realiza un array o diccionario con unos alumnos y sus respectivas notas.

Marta: 7,8

Luis: 5

Lorena: 6,9

...

  • Muestra las notas de una forma ordenada.
Alumno Nota
Marta 7,8
Luis 5
  • Da la posibilidad de añadir nuevos alumnos.

Pro:

  • Muestra la media en la parte inferior.
Actividad 7

Para entrar en la atracción vamos a construir un validador que minimice las victimas mortales. Para ello usaremos varios requisitos.

  • Debe superar una altura de 120cm.
  • Debe tener una edad superior a 16 años.
  • ¿Rechaza llevarnos a juicio por daños y perjuicios de un mal mantenimiento?

En caso de ser todo válido le daremos el ticket.

Pro:

  • Genera un ticket con su nombre y un número único. Ejemplo: "Alfonso, ticket 00034".
Actividad 8
  • Pide el nombre.
  • Pide el sexo.
  • Pide el número de hijos.
  • Muestra la siguiente frase dependiendo de los datos anteriores:

El señor Pepe tiene 1 hijo.

El señor Pepe tiene 4 hijos.

La señora Sonia tiene 1 hijo.

La señora Sonia no tiene hijos.

Esta obra está bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 4.0 Internacional.

Atribución/Reconocimiento-NoComercial-SinDerivados 4.0 Internacional

¿Me invitas a un café? ☕

Puedes hacerlo usando el terminal.

ssh customer@andros.dev -p 5555

Comentarios

{{ comments.length }} comentarios

Nuevo comentario

Nueva replica  {{ formatEllipsisAuthor(replyComment.author) }}

Acepto la política de Protección de Datos.

Escribe el primer comentario