Author Topic: No sé cómo detener este bucle  (Read 2130 times)

Lombardo

  • Newbie
  • *
  • Posts: 4
  • Karma: 0
    • View Profile
No sé cómo detener este bucle
« on: Junio 21, 2013, 07:02:10 pm »
Hola, soy aprendiz (inepto) de JavaScript  :-[

Quiero obtener el último número divisible por 23 antes de 1000, y sólo consigo sacar la lista completa así:

Code: [Select]
num = 1000;
while(num>900){
   if(num%23==0)
      show(num)
      num--;
}

Pero en cambio me sale bien con un for:
Code: [Select]
var num = 1000;
for(num>0; num%23!=0;num--)
  ;
show(num)

Quiero hacer lo mismo con el while, pero no sé cómo conseguir que se detenga el blucle al primer resultado por debajo de 1000. ¿Quién  me ayuda?

Gracias, un saludo.




chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5466
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: No sé cómo detener este bucle
« Reply #1 on: Junio 21, 2013, 08:29:43 pm »
En el if, después de show(num), pon un break.

Code: [Select]
num = 1000;
while(num>900){
   if(num%23==0){
      show(num)
      break;
   }
      num--;
}

El break hará que salgas del bucle conservando el valor de num. Si te da igual perder el valor de num, en vez de break puedes ponerlo a un valor menor o igual a 900

De todas formas, no necesitas un bucle, algo como

Code: [Select]
show(num - (num%23)) ;
deberia darte el resultado esperado.

Se bueno.

Lombardo

  • Newbie
  • *
  • Posts: 4
  • Karma: 0
    • View Profile
Re: No sé cómo detener este bucle
« Reply #2 on: Junio 21, 2013, 08:50:19 pm »
Muchas gracias, no conocía eso de "break"   :)

¡Pero qué tonto, lo que propones es mucho mejor!  :-[ :-[ :-[

Un saludo.

 

ey