[JS]¿De modo que pueden encadenarse dos while?

Iniciado por Linton, 11 Julio 2013, 08:28 AM

0 Miembros y 1 Visitante están viendo este tema.

Linton

Estaba haciendo ejercicios con javascript, y se me ocurrió probar una variante del enunciado de un problemilla, que pedía obtener los números entre dos cifras a y b anotadas por el usuario, quien debía introducir primero la mayor.

Quise resolverlo para cualquiera de los casos, a>b ó a<b, y probé a poner dos while, así:
Código (javascript) [Seleccionar]
a = parseInt(prompt('Escribe un número'));
b = parseInt(prompt('Escribe otro'));
while((a-1)>b){
  b++;
  document.write(b + '<br />');
}
while((b-1)>a){
  a++;
  document.write(a + '<br />')


¡Y funciona!  :) ¿Pero este recurso es correcto? ¿Puedo poner n operadores while en un programa?

Gracias, un saludo.

engel lex

es correcto y puedes poner N operadores while en tu programa incluso si quieres anidados... pero hay mejores métodos... por ejemplo
Código (javascript) [Seleccionar]

a = parseInt(prompt('Escribe un número'));
b = parseInt(prompt('Escribe otro'));

if(a>b){
mayor = a;
menor = b;
} else{
mayor = b;
menor = a;
}

while((mayor-1)>menor){
  menor++;
  document.write(menor + '<br />');
}


puedes usar el operador ternario para resumirlo más

Código (javascript) [Seleccionar]

a = parseInt(prompt('Escribe un número'));
b = parseInt(prompt('Escribe otro'));

mayor = a>b? a:b;//esto funciona igual que el if el "?" es el operador y el ":" es el else
menor = a>b? b:a;

for(i=(menor+1);i<mayor;i++) document.write(i + '<br />'); // como es una sola instruccion no necesita llaves


El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Linton

¡Tomo nota, muchas gracias por tu ayuda!  :)