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í:
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.
es correcto y puedes poner N operadores while en tu programa incluso si quieres anidados... pero hay mejores métodos... por ejemplo
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
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
¡Tomo nota, muchas gracias por tu ayuda! :)