Foros del Web » Programando para Internet » PHP »

Problemilla Switch

Estas en el tema de Problemilla Switch en el foro de PHP en Foros del Web. Hola a todos: Mi problema es el siguiente... al switch le paso la variable resultado, hasta ahí todo correcto, el problema viene cuando resultado vale ...
  #1 (permalink)  
Antiguo 05/05/2010, 10:08
 
Fecha de Ingreso: marzo-2009
Mensajes: 4
Antigüedad: 15 años
Puntos: 0
Problemilla Switch

Hola a todos:

Mi problema es el siguiente... al switch le paso la variable resultado, hasta ahí todo correcto, el problema viene cuando resultado vale 0... que me muestra el mensaje del "Default" incluso teniendo controlada esa condición como podreís ver en el primer case... dejo el código debajo... y espero vuestra ayuda, gracias por adelantado.


Código PHP:
switch($resultado){
        case (
$resultado>-&& $resultado <= 9):
            
$evaluacion="<h3> NO ERES UN ADICTO A INTERNET </H3>";
            break;
        case (
$resultado <= 18):
            
$evaluacion="<h3> TIENES UNA ADICCIÓN MEDIA-BAJA A INTERNET </H3>";
            break;
        case (
$resultado <= 27):
            
$evaluacion="<h3> TIENES UNA ADICCIÓN MEDIA-ALTA A INTERNET </H3>";
            break;
        case (
$resultado <= 36):
            
$evaluacion="<h3> ERES MUY ADICTO A INTERNET </H3>";
            break;
        default:
            
$evaluacion="Evaluación inesperada";
            break;    

        } 
  #2 (permalink)  
Antiguo 05/05/2010, 10:37
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Problemilla Switch

A mí me funcionó
Código PHP:
Ver original
  1. <?php
  2. $resultado = 3;
  3. switch(true){
  4.     case $resultado <= 9:
  5.         $evaluacion="<h3> NO ERES UN ADICTO A INTERNET </h3>";
  6.         break;
  7.     case ($resultado <= 18):
  8.         $evaluacion="<h3> TIENES UNA ADICCIÓN MEDIA-BAJA A INTERNET </h3>";
  9.         break;
  10.     case ($resultado <= 27):
  11.         $evaluacion="<h3> TIENES UNA ADICCIÓN MEDIA-ALTA A INTERNET </h3>";
  12.         break;
  13.     case ($resultado <= 36):
  14.         $evaluacion="<h3> ERES MUY ADICTO A INTERNET </h3>";
  15.         break;
  16.     default:
  17.         $evaluacion="<h3>Evaluación inesperada</h3>";
  18.         break;    
  19. }  
  20. echo $evaluacion;
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Última edición por abimaelrc; 05/05/2010 a las 10:48
  #3 (permalink)  
Antiguo 05/05/2010, 10:39
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: Problemilla Switch

Es que estás usando el switch de una forma rara :S

En el case no va una condición, va un valor que debería tener la variable que le pasas a switch para que se cumpla, pero una condicion..., eso nunca lo he visto en un switch.
Un saludo
  #4 (permalink)  
Antiguo 05/05/2010, 10:47
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Problemilla Switch

@Heli0s, el switch se puede usar de esa forma, que no es lo que se ve regularmente es otra cosa, pero sí se puede usar de esa forma.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 05/05/2010, 10:48
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: Problemilla Switch

Pues mira, otra cosa que he aprendido hoy :)

Un saludo Abimaelrc
  #6 (permalink)  
Antiguo 05/05/2010, 10:51
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: Problemilla Switch

De todas formas, en el ejemplo que dices que funciona, no tienes la opción de que el valor sea 0, el problema que tiene es que cuando el valor es 0 no se cumple ninguna condición y va al default.

Edit: No me fije en el detalle de la primera condición del switch, está correctamente.

Un saludo
  #7 (permalink)  
Antiguo 05/05/2010, 10:53
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Problemilla Switch

Es verdad, por eso lo corregí.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: switch
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:11.