Foros del Web » Programando para Internet » PHP »

Problemas con el SWITCH

Estas en el tema de Problemas con el SWITCH en el foro de PHP en Foros del Web. Amigos: He generado el siguiente código pero me sale error, me puede ayudar, dónde está el error: Código PHP: $suma = 55 ; switch ( $suma ...
  #1 (permalink)  
Antiguo 26/10/2006, 13:58
 
Fecha de Ingreso: julio-2005
Mensajes: 172
Antigüedad: 18 años, 9 meses
Puntos: 0
Problemas con el SWITCH

Amigos:
He generado el siguiente código pero me sale error, me puede ayudar, dónde está el error:

Código PHP:
$suma=55;
switch (
$suma):
    case (<
31):
        
$seguro=15;
         break;
  case (>=
31)&& (<61):
        
$seguro=20;
         break; 
   case (>=
61)&& (<101):
        
$seguro=20;
         break;
   case (>=
101)&& (<151):
        
$seguro=25;
         break; 
  case (>=
151)&& (<301):
        
$seguro=30;
         break; 
   case (>=
301)&& (<500):
        
$seguro=35;
         break;   
   case (>=
500):
        
$seguro=40;
         break;            
 endswitch; 

SAludos y Gracias por su tiempo.

Última edición por Cluster; 26/10/2006 a las 14:04
  #2 (permalink)  
Antiguo 26/10/2006, 14:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Y que "error" textual obtienes al ejecuar ese código? .. (si hay línea de código involucrada .. indica en tu código cual es).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 26/10/2006, 14:09
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Un detalle, no le estas pasando la variable a comparar solo estas poniendo <31 sin decirle con que va a comparar. Otra cosa, estas poniendo como valor de la variable $seguro dos veces el 20 creo que esto fue un error porque sino pondrías el margen más alto en lugar de ponerlo dos veces. Aquí está el código corregido:

Código PHP:
<?php 
$suma
=55

switch ( 
$suma ):
   case ( 
$suma 31 ): 
      
$seguro=10
      break; 
   case ( 
$suma >= 31 && $suma <61 ): 
      
$seguro=15
      break;  
   case ( 
$suma >= 61 && $suma 101): 
      
$seguro=20
      break; 
   case ( 
$suma >= 101 && $suma 151): 
      
$seguro=25
      break;  
   case ( 
$suma >= 151 && $suma 301 ): 
      
$seguro=30
      break;  
   case ( 
$suma >= 301 && $suma 500 ): 
      
$seguro=35
      break;  
   default: 
      
$seguro=40
      break;  
endswitch;

echo 
$seguro// esto para que te muestre en pantalla el resultado 
?>
Espero que esto te haya servido y me haya dado a entender. Suerte :ariba:

Última edición por Erikfrancisco; 26/10/2006 a las 14:28
  #4 (permalink)  
Antiguo 26/10/2006, 14:33
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Eso esta bien, esta usando una manera alternativa, la cual no usa llaves, por eso los dos puntos.
Fuera de eso, lo que debes hacer es lo siguiente:
Código PHP:
<?
$suma
=55
switch (
true): 
    case (
$suma<31): 
        
$seguro=15
         break; 
  case (
$suma>=31)&& ($suma<61): 
        
$seguro=20
         break;  
   case (
$suma>=61)&& ($suma<101): 
        
$seguro=20
         break; 
   case (
$suma>=101)&& ($suma<151): 
        
$seguro=25
         break;  
  case (
$suma>=151)&& ($suma<301): 
        
$seguro=30
         break;  
   case (
$suma>=301)&& ($suma<500): 
        
$seguro=35
         break;    
   case (
$suma>=500): 
        
$seguro=40
         break;
 endswitch; 
?>
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #5 (permalink)  
Antiguo 27/10/2006, 09:54
 
Fecha de Ingreso: julio-2005
Mensajes: 172
Antigüedad: 18 años, 9 meses
Puntos: 0
Gracias Erickfrancisco y nickolaster. Ya me salió, de las dos formas funciona bien.

Muchas Gracias.

Son Grandes...

Nano
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 21:11.