Foros del Web » Programando para Internet » Javascript »

Detener bucle FOR desde un SWITCH

Estas en el tema de Detener bucle FOR desde un SWITCH en el foro de Javascript en Foros del Web. Qué tal gentes!! Si quiero detener un bucle FOR desde un condicional IF contenido en él, hago lo siguiente: Código: var nombres = new Array('Pedro', ...
  #1 (permalink)  
Antiguo 17/05/2006, 23:32
 
Fecha de Ingreso: diciembre-2003
Mensajes: 1.583
Antigüedad: 20 años, 4 meses
Puntos: 13
Detener bucle FOR desde un SWITCH

Qué tal gentes!!

Si quiero detener un bucle FOR desde un condicional IF contenido en él, hago lo siguiente:

Código:
var nombres = new Array('Pedro', 'Juan', 'Diego', 'Maria', 'Pablo');
for(var i = 0; i < nombres.length; i++){
    alert(nombres[i]);
    if(nombres[i] == 'Diego' || nombres[i] == 'Maria){
        break;
    }
}
En ese caso, el alert() se ejecutaría hasta que se encuentre el nombre Diego o Maria en el listado. ¿Se puede hacer lo mismo si en vez de un condicional IF utilizo SWITCH?

Código:
var nombres = new Array('Pedro', 'Juan', 'Diego', 'Maria', 'Pablo');
for(var i = 0; i < nombres.length; i++){
    alert(nombres[i]);
    switch(nombres[i]){
        case 'Diego':
        case 'Maria':
            ¿break;?
    }
}
__________________
El conocimiento es libre: Movimiento por la Devolución
  #2 (permalink)  
Antiguo 18/05/2006, 03:31
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Hola frijolerou

  #3 (permalink)  
Antiguo 18/05/2006, 11:12
 
Fecha de Ingreso: diciembre-2003
Mensajes: 1.583
Antigüedad: 20 años, 4 meses
Puntos: 13
Hola Tunait

¿Pero donde debiera ir el break?. Porque si lo hago igual como puse en el ejemplo (obviamente eliminando esos signos de interrogación en break) igual sigue recorriendo todo el listado de nombres.
__________________
El conocimiento es libre: Movimiento por la Devolución
  #4 (permalink)  
Antiguo 18/05/2006, 11:18
pablasso
Invitado
 
Mensajes: n/a
Puntos:
Busqueda

asi de rapidon se me ocurre

Código:
var flag = true;
var nombres = new Array('Pedro', 'Juan', 'Diego', 'Maria', 'Pablo');
for(var i = 0; i < nombres.length; i++)
{
    if ( flag )
    {
        alert(nombres[i]);
        switch(nombres[i]){
            case 'Diego':
            case 'Maria':
                flag = false;
                break;
    }
    else
    {
        break;
    }
}
  #5 (permalink)  
Antiguo 18/05/2006, 11:21
 
Fecha de Ingreso: noviembre-2005
Mensajes: 117
Antigüedad: 18 años, 5 meses
Puntos: 0
Primero que nada, el break en el switch debes hacerlo siempre... xq si entra, por ej a Diego, luego te va a recorrer TODO lo demas. No va a ser posible salir del FOR con un break dentro del SWITCH.

La funcion del switch es "Buscame el primer CASE que concuerde con el switch, una vez que lo encontraste, ejecuta ese CASE y TODOS los que sigan". El break se usa para evitar q ejecute el resto.
  #6 (permalink)  
Antiguo 18/05/2006, 11:28
 
Fecha de Ingreso: diciembre-2003
Mensajes: 1.583
Antigüedad: 20 años, 4 meses
Puntos: 13
rkpost: eso era lo que me estaba imaginando. La respuesta de pablasso no me parece una mala solución (Y)
__________________
El conocimiento es libre: Movimiento por la Devolución
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 00:49.