Contenido del curso
Arreglos
Condicionales
Bucles
Funciones
Proyecto: juego del ahorcado con PHP
Bonus: HTML con esteroides
Próximos pasos
Aprende a tomar decisiones con if y else
Contenido del curso
Aprende a tomar decisiones con if y else
Carlos Eduardo Gomez García
Profesorcristian david palomino porras
EstudianteTomas Zambrano
EstudianteEduardo Peraza Vindas
EstudianteHenry
EstudianteLucas Da Rosa
EstudianteJesus Cuadro
EstudianteWill Carlo
EstudianteSebastian Larcos
EstudianteJoan Manuel Olvera Lona
EstudianteDaniela Alarcón Gamboa
EstudianteWilder Cordero
EstudianteEmilio Salvatore Ampuero Sepúlveda
EstudianteLESTHER XITUMUL MANUEL
EstudianteEvander Nassem Ramírez Hernández
EstudianteEvander Nassem Ramírez Hernández
EstudianteYerson Felipe Ramirez Garnica
EstudianteNelson Andres Vera Bernal
EstudianteSantiago Mancera
EstudianteJulio Manuel Nieto
EstudianteBelen Martínez
EstudianteJuan Osio
EstudianteManuel Galindo
EstudianteJairo Pinto
EstudianteJesús Medina
EstudianteJuan Pablo Campuzano Monsalve
EstudianteLe mentí banda, no soy hijo de Tom Holland 😔👌, pero ahora ustedes ya saben cómo funciona if y else en PHP 👀. Es muy sencillo y de hecho no tiene mucha diferencia con otros lenguajes.
.
¿Pero se escribe else if o elseif? ¡No importa! Ambas formas funcionan 😄. Prefiero la primera para tener ambas palabras separadas y que sea más fácil de leer 😉.
.
Recuerda que esta estructura de control nos ayuda a tomar decisiones, es decir, se ejecuta un bloque de código o se ejecuta otro, pero nunca ambos a la vez.
.
Un ejemplo de uso en la vida real es la siguiente frase:
.
Si vas por las tortillas tu mamá estará agradecida, si no, entonces se va a enojar mucho 😠
. Funciona igual en programación, puedes empezar a tomar decisiones muy fácilmente 😄. ¿Ya fuiste por las tortillas? 👀
no eras hijo de slash?
Lo del else if, separado o no, dicho error de interprete solo pasará si la sentencia o el codigo a ejecutar no está entre { }.
Se me ocurrio hacer un combate michi-mon con if/else >:3 Mezcle un poco con los conocimientos de arreglos asociativos
Dejo mi codigo de ejemplo:
<?php //combate pokemon $pokemon = array( "pokemon_a" => array( "nombre" => "Michimon", "ps" => 20, //puntos de salud ), "pokemon_b" => array( "nombre" => "Doggomon", "ps" => 0, //puntos de salud ) ); if ($pokemon["pokemon_a"]["ps"] <= 0 && $pokemon_2["pokemon_b"]["ps"] >= 0){ //si los puntos de salud estan en 0, el pokemon pierde echo $pokemon["pokemon_b"]["nombre"] . " ha ganado! \n"; } else echo $pokemon["pokemon_a"]["nombre"] . " ha ganado! \n";
ejemplo en español:
SI (esto se cumple) { Hacer esto } SI NO { Hacer esto otro }
Dato curioso, eso que tu llamas "ejemplo en español", en realidad se lo conoce como Pseudocódigo, es muy usado como paso previo a programar, saludos!
De esa manera le conocemos en Pseint
Por si acaso también else if o elseif funcionan igual sí y sólo sí usamos corchetes como en el ejemplo de esta clase, pero si usamos dos puntos ':' no podemos usar 'else if' debemos usarlo junto para que no genere error 'elseif'. Por ejemplo:
if ($a > $b): echo $a." es mayor que ".$b; elseif ($a == $b): echo $a." igual ".$b; else: echo $a." no es ni mayor ni igual a ".$b; endif;
También tener en cuenta que cerramos con 'endif;'.
Aqui un aporte para verificar si Maria es mayor o menor de edad.
$mayor_de_edad = 18; $edadMaria = 15; if($edadMaria >= $mayor_de_edad){ echo "Maria es mayor de edad"; }else{ echo "Maria es menor de edad"; } echo "\n";
Cambié el ejemplo que puse en el capítulo anterior para adaptarlo a la clase. Espero les sirva.
<?php $br = "\n"; $hr = "------------------------------------------------------------------------------------------\n"; $hhr = "==========================================================================================\n"; echo `clear`; $escuela = [ [ 'nombre' => 'Garfield', 'ocupacion' => 'dormilón', 'color' => 'atigrado', 'comidas' => [ 'favoritas' => [ 'lasagna', 'pizza', 'leche', ], 'vomitivas' => [ 'brócoli', 'croquetas', 'ratón', ], ], ], [ 'nombre' => 'Félix', 'ocupacion' => 'mago', 'color' => 'negro', 'comidas' => [ 'favoritas' => [ 'leche', 'cereal', 'pescado', ], 'vomitivas' => [ 'repollo', 'zanahorias', 'pasta', ], ], ], [ 'nombre' => 'Azrael', 'ocupacion' => 'cazador', 'color' => 'negro', 'comidas' => [ 'favoritas' => [ 'Pitufos', 'leche', ], 'vomitivas' => [ 'pitufresas', 'lasagna', 'verduras', ], ], ], [ 'nombre' => "Simon's Cat", 'ocupacion' => 'acompañante', 'color' => 'blanco', 'comidas' => [ 'favoritas' => [ 'Whiskas', 'pájaros', 'peces', 'ratones', ], 'vomitivas' => [ 'sobras', 'agua', 'brócoli', ], ], ], [ 'nombre' => 'Goose', 'ocupacion' => 'Flerken', 'color' => 'amarillo', 'comidas' => [ 'favoritas' => [ 'Materia orgánica', ], 'vomitivas' => [ 'Teseracto', 'enemigos', ], ], ], ]; echo $hhr.'RETO: ESCUELA PARA MICHIS'.$br.$hhr; echo 'En la Escuela para Michis tenemos '.count($escuela).' gatitos inscritos.'.$br; $opt = readline('Escriba el número del gatito que deseas conocer (máximo '.count($escuela).'): '); if (is_numeric($opt) && $opt >= 1 && $opt <= count($escuela)) { --$opt; echo 'Gato '.$opt + 1 .':'.$br; echo "\tNombre: ".$escuela[$opt]['nombre'].$br; echo "\tOcupación: ".$escuela[$opt]['ocupacion'].$br; echo "\tColor: ".$escuela[$opt]['color'].$br; echo "\tComidas:".$br; echo "\t\tFavoritas: "; for ($j = 0; $j < count($escuela[$opt]['comidas']['favoritas']); $j++) { echo $escuela[$opt]['comidas']['favoritas'][$j]; if ($j === (count($escuela[$opt]['comidas']['favoritas']) - 1)) { echo $br; } else { echo ', '; } } echo "\t\tVomitivas: "; for ($k = 0; $k < count($escuela[$opt]['comidas']['vomitivas']); $k++) { echo $escuela[$opt]['comidas']['vomitivas'][$k]; if ($k === (count($escuela[$opt]['comidas']['vomitivas']) - 1)) { echo $br; } else { echo ', '; } } } else { echo 'Escribe un valor válido'.$br; } echo $hr;
Puedes usar la constante PHP_EOL (end of line) para imprimir el \n:
echo PHP_EOL;
gracias por el dato en mi caso el echo "∖n"; no me funcionaba para hacer el salto de linea. y con la constante PHP_EOL; me funciona al 100.
gracias por el dato
La otra forma típica de usar el if else en ejercicios es si la persona es o no mayor de 18 años
Decisiones con IF, ELSE en PHP
En PHP, los bloques de código condicionales se pueden crear utilizando la sintaxis if, else y elseif.
La sintaxis básica de un bloque if es la siguiente:
if (condición) { // Código a ejecutar si la condición es verdadera }
En este caso, condición es una expresión booleana que se evalúa como verdadera o falsa. Si la condición es verdadera, el código dentro del bloque if se ejecutará. De lo contrario, el código se saltará.
Es posible agregar bloques else y elseif para crear una lógica más compleja. La sintaxis para un bloque else es la siguiente:
if (condición) { // Código a ejecutar si la condición es verdadera } else { // Código a ejecutar si la condición es falsa }
En este caso, si la condición es falsa, el código dentro del bloque else se ejecutará.
La sintaxis para un bloque elseif es la siguiente:
if (condición1) { // Código a ejecutar si la condición1 es verdadera } elseif (condición2) { // Código a ejecutar si la condición1 es falsa y la condición2 es verdadera } else { // Código a ejecutar si todas las condiciones son falsas }
En este caso, si la condición1 es falsa, se evaluará la condición2. Si la condición2 es verdadera, se ejecutará el código dentro del bloque elseif. De lo contrario, se ejecutará el código dentro del bloque else.
A continuación, se presenta un ejemplo de código que utiliza bloques if y else para verificar si un número es par o impar:
$numero = 4; if ($numero % 2 == 0) { echo "El número es par"; } else { echo "El número es impar"; }
En este caso, se utiliza el operador % para calcular el resto de la división del número entre 2. Si el resto es 0, el número es par; de lo contrario, es impar.
El secreto es aprender python y despúes cualquier lenguaje es más fácil de aprender jaja, este tema me costó mucho en python
Mi código de ejemplo:
<?php $dinero = 50; if ($dinero > 100) { echo "Somos ricos"; } else { echo "Somos pobres"; } ?>
Realice un pequeño ejercicio de operaciones aritméticas
Les dejo el código chavos :D, me dicen que tal :D
<?php echo("1. Sumar, 2.Restar, Multiplicar "); $opcion = readline("Elija una opcion "); if($opcion == 1){ $numero1 = readline("Ingrese el primer valor para sumar "); $numero2 = readline("Ingrese el segundo valor para sumar "); $resultado_suma = $numero1 + $numero2; echo ($resultado_suma); }else if($opcion == 2){ $numero1 = readline("Ingrese el primer valor para restar "); $numero2 = readline("Ingrese el segundo valor para restar "); $resultado_restar = $numero1 - $numero2; echo ($resultado_restar); }else if($opcion == 3){ $numero1 = readline("Ingrese el primer valor para multiplicar "); $numero2 = readline("Ingrese el segundo valor para multiplicar "); $resultado_multiplicar = $numero1 * $numero2; echo ($resultado_multiplicar); }else{ echo "Numero invalido"; } ?>
aplicando lo aprendido en mi ejercicio:
Teniendo en cuenta lo visto en esta lección implemente un programa donde varios participantes se enfrentaran en un reto de Press de banca 💪 para medir quien es el mas fuerte. Hice uso de condicionales, Arreglos asociativos, foreach y funciones para el tratamiento de strings:
<?php echo "********Bienvenidos al reto de press banca********\nTenemos 4 participantes:\n* Santiago.\n* Emerson.\n* Juan.\n* Esteban.\nEs hora de ponerlos a prueba, digita los participantes que se enfrentaran en esta ocasión.\n"; $player_1 = readline("Jugador #1: \n"); $player_2 = readline("Jugador #2: \n"); // Normalizamos los datos ingresados para que siempre coincidan $player_1 = ucfirst(strtolower(trim($player_1))); $player_2 = ucfirst(strtolower(trim($player_2))); echo "Se enfretaran: $player_1 VS $player_2\n"; $reto_gimnasio = array( array( "nombre" => "Santiago", "peso" => 63, ), array( "nombre" => "Juan", "peso" => 61, ), array( "nombre" => "Esteban", "peso" => 58, ), array( "nombre" => "Emerson", "peso" => 59, ) ); $jugador1 = null; $jugador2 = null; foreach ($reto_gimnasio as $jugador) { if (strtolower($jugador["nombre"]) == strtolower($player_1)) { $jugador1 = $jugador; } if (strtolower($jugador["nombre"]) == strtolower($player_2)) { $jugador2 = $jugador; } } if ($jugador1 && $jugador2) { if ($jugador1["peso"] > $jugador2["peso"]) { echo "El ganador de esta partida es {$jugador1["nombre"]} con {$jugador1["peso"]} contra {$jugador2["peso"]}\n"; } else if ($jugador2["peso"] > $jugador1["peso"]) { echo "El ganador de esta partida es {$jugador2["nombre"]} con {$judagor2["peso"]} contra {$jugador1["peso"]}\n"; } else { echo "¡Empate los dos levantan: {$jugador1["peso"]}\n"; } } else { echo "Uno o ambos jugadores no existen en la lista\n"; }
<?php $asientos_disponibles = 0; $otra_fecha_disponible = false; if ($asientos_disponibles > 0){ echo "Ingresar a la eleccion de asientos"; } else if ($otra_fecha_disponible == true){ echo "No hay asientos para esta fecha, busca en otro horario"; }else { echo "No hay asientos disponibles para esta funcion"; } echo "\n"; ?>
Este es mi ejemplo:
$edad = 17; $eres_amigo_del_dueño = False; if ($edad >= 18) { echo "Puedes pasar al bar"; } else if ($eres_amigo_del_dueño) { echo "No lo sabía, no le digas nada a mi jefe, por favor"; } else { echo "No puedes pasar"; } echo "<br>";
Existe el operador ternario que pueden usar para resolver decisiones simples y rápidas por ejemplo
$asientos_disponibles = 0; echo ($asientos_disponibles > 0) ? "Puedes ver la pelicula Spidey" : "Lo sentimos, tocara spoilearte";
Me gustaría complementar el tema mencionando algunos operadores útiles que pueden simplificar el código que escriben y que actúan similar a las condicionales if, else y elseif vistas en clase.
Operador Ternario:
result = condition ? expressionIfTrue : expressionIfFalse;
Este operador es una forma concisa de escribir una declaración if-else. Evalúa la condition y devuelve expressionIfTrue si esta resuelve como verdadero, o expressionIfFalse en caso contrario.
// Retomando el ejemplo de clase: <?php $asientos_disponibles = 4; if ($asientos_disponibles > 0) { echo "Puedes ver la pelicula de Spidey" else { echo "Lo sentimos, te tocara spoilearte"; } // Podríamos aplicar el operador ternario y quedar de la siguiente forma: <?php $asientos_disponibles = 4; $mensaje = ($asientos_disponibles > 0) ? "Puedes ver la película de Spidey" : "Lo sentimos, te tocará spoilearte"; echo $mensaje;
Operador Elvis:
result = condition ?: expressionIfFalse;
Uno de mis operadores favoritos, actúa similar al operador ternario, pero de forma simplificada cuando el resultado de la condición es el mismo que se va a retornar. Si condition resuelve en verdadero, devuelve condition; de lo contrario, devuelve expressionIfFalse.
<?php $dinero_disponible = readline("¿Cuánto dinero traes?: "); if ($dinero_disponible > 15000) { echo "puedes ver la película"; } else { echo "Lo siento, no podrás verla"; } echo "\n"; ```\<?php $dinero\_disponible = readline("¿Cuánto dinero traes?: "); if ($dinero\_disponible > 15000) { echo "puedes ver la película";}else { echo "Lo siento, no podrás verla";} echo "\n";
<?php
$available_seats = readline("Write the value of the seats: ");
if($available_seats <= 4 and $available_seats > 0) {
echo "You can see Spidy's Movie";
}
else {
echo "I'm sorry, You'll have to spoil it";
}
Se me ocurrió hacer un ejemplo para validar la cantidad de elementos que tienen dos array, si array 1 es mayor que array 2 nos lo mostrará. Aporte:
//Ejemplo $array1 = [ 'string', 'sad', 1, 'asd', ]; $array2 = [ 'string', 'sad', 1, 'asd', 'string', 'sad', 1, 'asd', 'string', 'sad', 1, 'asd', ]; if(count($array1) >= count($array2)) echo "array 1 es mayor que array 2"; else echo "Array 2 es mayor que array 1";