Hola, este es un ejercicio básico que pulula por la red:
de dos números calcular cual es mayor o menor que el otro.
He buscado varios ejemplos de este ejercicio pero en todos los casos está resuelto con un simple IF y no cubre las demás posibilidades, que son varias y con un if se anidarian demasiado, así que no encuentro demasiada información para cuando lo quieres hacer más completo, y ya llevo varias horas investigando algunos casos que no me salen.
Mis dudas son:
- 1- En el caso de que el usuario deje las casillas vacias: Me funciona si dejo las dos casillas vacias, pero si sólo dejo UNA vacia, me dice que : es menor que el X ( el número que haya introducido, y no me respeta el operador “OR”.
- 2 En el caso de que el usuario no introduzca un número : Tampoco me funciona y me compara las letras, ej: fdfd es mayor que refeefds
-¿Es
isNaN la función para decir que no es un número verdad.?
- ¿Está bien planteada la opción de cuando no es un número, es correcta la función(isNaN)?
Código HTML:
<html>
<body>
<form action="calculo.php">
Introduce el primer numero entero: <input type="text" name="valor1" method="get">
Introduce el segundo numero entero: <input type="text" name="valor2" method="get">
<input type="submit" value="enviar">
</form>
</body>
</html>
Código PHP:
<?php
$valor1 = $_GET['valor1'];
$valor2 = $_GET['valor2'];
switch (true) {
case $valor1 > $valor2:
echo $valor1." es mayor que ".$valor2;
break;
case $valor1 < $valor2:
echo $valor1." es menor que ".$valor2;
break;
case $valor1 = $valor2:
echo $valor1." es igual a ".$valor2;
break;
case empty($valor1) || empty($valor2);
echo "las casillas estan vacias, por favor, introduzca un numero entero";
break;
case is_nan( $valor1);
echo "No es un numero, introduzca un numero entero";
break;
default:
echo " Por favor introduzca un numero valido";
break;
}
?>
Agradecería cualquier comentario!!