Foros del Web » Creando para Internet » Flash y Actionscript »

if y else en un for

Estas en el tema de if y else en un for en el foro de Flash y Actionscript en Foros del Web. buenas comañeros, tengo un problema, en este codigo: for(i=0;i<documento.childNodes.length;i++) { buscado = myXML.firstChild.childNodes[i]; if(bus_txt == buscado.attributes.id) { ref_txt = buscado.attributes.id; tit_txt = buscado.childNodes[0].firstChild; aut_txt = ...
  #1 (permalink)  
Antiguo 20/10/2006, 03:17
 
Fecha de Ingreso: mayo-2006
Mensajes: 29
Antigüedad: 17 años, 11 meses
Puntos: 0
if y else en un for

buenas comañeros, tengo un problema, en este codigo:

for(i=0;i<documento.childNodes.length;i++)
{
buscado = myXML.firstChild.childNodes[i];

if(bus_txt == buscado.attributes.id)
{
ref_txt = buscado.attributes.id;
tit_txt = buscado.childNodes[0].firstChild;
aut_txt = buscado.childNodes[1].firstChild;
edi_txt = buscado.childNodes[2].firstChild;
}
} else ( " No existe ese libro " )

mi problema es que si se cumple la condicion me funciona la carga de variables pero me aparece siempre el mensaje del ELSE.
¿Como puedo hacer para que cuando se cumple la condicion del IF, salga del bucle? , y si no se cumple aparezca el mensaje del ELSE?

Muchas gracias a todos.
  #2 (permalink)  
Antiguo 20/10/2006, 07:30
Avatar de La2daElegida  
Fecha de Ingreso: noviembre-2003
Ubicación: Argentina
Mensajes: 1.893
Antigüedad: 20 años, 5 meses
Puntos: 4
Primero, siempre ojo con los parentesis

for(i=0;i<documento.childNodes.length;i++)
{
buscado = myXML.firstChild.childNodes[i];
if(bus_txt == buscado.attributes.id)
{
ref_txt = buscado.attributes.id;
tit_txt = buscado.childNodes[0].firstChild;
aut_txt = buscado.childNodes[1].firstChild;
edi_txt = buscado.childNodes[2].firstChild;};

} else {
Trace ("No existe ese libro")
}//fin del if
}//fin for

despues... buscado.attributes.id tiene q ser igual igual igual a bus_txt.

Y para terminar... estem.. me parece q lo tenes mal planteado.. explicame que es lo que queres hacer?.. q pregunte sobre un grupo de registros y si no esta q te diga q no esta?

En ese caso tenes q hacer un for... dentro del for un if.. ese if al no encontrar te cambia una bandera y corta el for.. salis y alli otro if q controle la bandera y de la respuesta q quieras... comprendes?
__________________
Juegos online . Juegos gratis
  #3 (permalink)  
Antiguo 20/10/2006, 08:25
 
Fecha de Ingreso: mayo-2006
Mensajes: 29
Antigüedad: 17 años, 11 meses
Puntos: 0
gracias por tu respuesta, te explico un poco.
tengo varios campos de texto dinámico, y un campo donde inserto la referencia del libro a buscar ,con un boton de busqueda para encontrar unos registros, en este caso libros.
las variables que son titulo autor y referencia de libro estan en un archivo .xml
el proceso de busqueda lo hace bien por lo que entiendo que las variables q estoy buscando son correctas, solo necesito salir del for y del if que está dentro ,cuando no encuentre la referencia de libro, y en tal caso q muestre la sentencia del else.
parece la parte mas facil de la busqueda pero no lo consigo.
lo q necesito es exactamente lo q me planteas en tu respuesta.
tengo el for, dentro de este el if y despues el else, pero no va bien...
te puedo enviar el .fla para q lo veas a tu mail.
Muchas Gracias
  #4 (permalink)  
Antiguo 20/10/2006, 08:52
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 9 meses
Puntos: 53
mira, eso que mencionas de salir del for en caso de que no este, esta incorrecto, pues no debes salir hasta que encuentre el libro o el ciclo termine, osea la forma correcta de decirlo es "salir cuando encuentre el libro", ok ahora escribamos en code lo que acabamos de decir con palabras

Código PHP:
var esta:Boolean false;
for(var 
i:Number=0;i<documento.childNodes.length;i++){
   
buscado myXML.firstChild.childNodes[i];
   if(
bus_txt.text == buscado.attributes.id){
      
ref_txt.text buscado.attributes.id;
      
tit_txt.text buscado.childNodes[0].firstChild;
      
aut_txt.text buscado.childNodes[1].firstChild;
      
edi_txt.text buscado.childNodes[2].firstChild;
      
esta true;
      break;
   }
}
//fin for

if(!esta){
   
trace("El libro no fue encontrado");

have funnnnn
  #5 (permalink)  
Antiguo 20/10/2006, 09:12
 
Fecha de Ingreso: mayo-2006
Mensajes: 29
Antigüedad: 17 años, 11 meses
Puntos: 0
gracias por tu respuesta, al final lo encontre de una forma parecida, solo cambio q al final pongo un
else if que compruebe si se ha llegado al ultimo registro, prueba de que no se ha encontrado nada, entonces saca el mensaje por pantalla.

else if( i == documento.childNodes.length-1 ){ salida =("Sentimos comunicarle que no tenemos ese libro!"); };

y así funciona.

Gracias por vuestras respuestas.
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:03.