Foros del Web » Programando para Internet » PHP »

problema con break

Estas en el tema de problema con break en el foro de PHP en Foros del Web. Como estan: Tengo un bucle while que me hace el llamado a una funcion tantas veces. Código PHP: <?        while ( $Datos  =  mysql_fetch_array ( ...
  #1 (permalink)  
Antiguo 14/05/2008, 16:16
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
problema con break

Como estan:

Tengo un bucle while que me hace el llamado a una funcion tantas veces.

Código PHP:
<?
      
while ($Datos mysql_fetch_array($CnsDatos))
      {
            
// Llamo la funcion
            
TrabajaDatos($Datos['CodJefe'], $Datos['NomJefe']);
      }
?>
El problema esta en que la funcion TrabajaDatos tiene una serie de condiciones y cuando entra a algunas de estas condiciones hace algunas cosas y luego tiene un break que mata todo el proceso lo que hace que por mas que en mi bucle while deba entrar 5 veces si entra a la condicion que tiene el break no me entra sino una vez.

No puedo quitar estos breaks porque eso implicaria analizar toda la funcion y reestructurarla para que funcione correctamente sin los breaks pero como hago para que pare solo la funcion pero vuelva al while a seguir el proceso.

Ejemplo de la funcion

Código PHP:
TrabajaDatos($Codigo,$Nombre)
{
     if (
condicion)
    {
        
// Aca hace una serie de consultas y modificaciones y calculos
        
if (condicion)
        {
          
// Otras cosa shace aca
           
break
         } 
   }
    if (
condicion)
    {
        
// Otras cosa shace aca
    
}
    if (
condicion)
    {
         
// Otras cosa shace aca
         
break
    }

Como hago eso gracias?
  #2 (permalink)  
Antiguo 14/05/2008, 17:20
 
Fecha de Ingreso: junio-2007
Ubicación: por ahi
Mensajes: 262
Antigüedad: 16 años, 10 meses
Puntos: 4
Re: problema con break

Como primera medida utilizar Break es lo mas parecido a la epoca de asembler ( exceptuando en el switch). Es decir como se programaba hace 40 a@os.

Igual , no importa, el hecho es que la solucion es muy simple. Simplemente remplaza los break por return.

De esta forma no rompes el bloque sino que terminas la ejecucion de tu funcion como deberia ser.

Código PHP:
return ; 
__________________
Hernando Saenz Sanchez
  #3 (permalink)  
Antiguo 15/05/2008, 10:39
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: problema con break

hernandos, una opinión personal
No tiene nada de malo usar break/continue en un while, y no me parece que sea tan "malo" como lo hacés parecer.

En este caso no corresponde, como bien lo mencionás, pero por algo sigue incluido en los lenguajes más "modernos", mientras que otras sentencias que sí se reputaron como malas prácticas de programación (goto, por ejemplo) fueron eliminadas.

Saludos.
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 01:47.