[JS] Cada vez me siento más idiota, no comprendo lo más sencillo

Iniciado por Linton, 17 Junio 2013, 21:17 PM

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

Linton

Estoy con el manual Eloquent javascript, y llego en el capítulo 2 al ejercicio de calcular 2 elevado a 10. Por supuesto, no lo he sacado.

La solución es la siguiente:

Código (javascript) [Seleccionar]
var resultado = 1;
var contador = 0;
while (contador <10) {
resultado = resultado * 2;
  contador = contador + 1;
}
document.write(resultado);


Y sencillamente NO LO ENTIENDO  :( ¿Dónde diablos se expresa la relación entre "resultado" y "contador", dónde dice que "contador" es el número de veces que se repite la operación? Sólo hay dos variables yuxtapuestas sin ninguna conexión entre ellas :( :(  :(

Gracias por la ayuda.

$Edu$

while (contador <10) ---> eso dice que se repetira todo el bucle, mientras contador sea menor a 10. Por eso se incrementa en 1 la variable contador, para realizar 10 veces el bucle. Luego entonces dentro del bucle multiplica resultado por 2, dando 2, y luego como resultado ahora vale 2, se sigue multiplicando por 2 y da 4, luego 8, luego 16, etc, hasta 1024 y justo es cuando contador equivale a 10, por lo tanto al verificar el While, ya la condicion de contador < 10 no se cumple y por lo tanto se sale del bucle.

Y luego muestra la variable resultado, que contendra el numero 1024 que es 2^10.

Buscate un buen tutorial que te explique desde 0 todo, sino dificil aprender.

Linton

Cita de: $Edu$ en 17 Junio 2013, 21:42 PM
while (contador <10) ---> eso dice que se repetira todo el bucle, mientras contador sea menor a 10.

Eso es lo que no entiendo, ¿cómo sabe el programa que esa cifra es la cantidad de veces que se repite la multiplicación? Pensaba que "counter" (la palabra que utiliza el manual) era una comosellame de javascript, igual que var o while, pero no, la cosa funciona aunque se denomine a la variable "cebolla" en vez de "counter".

Y no veo dónde está expresado que "contador", o "cebolla", o "me llamo Bond, James Bond", es el número de veces que hay que repetir el bucle. ¿¿¿Es una asignación por defecto cuando se ponen dos variables???

Muchas gracias por tu ayuda, un saludo.

PD: se supone que "Eloquent javascript" es lo más elemental  :(

$Edu$

Busca otro tutorial, que sea un libro, un pdf de esos largos, que comience desde 0.

Pero sacandote de la duda, el que indica las veces que se repetira el bucle es la condicion del While, es decir, lo que esta entre los parentesis. Que dice: "Mientras la variable contador sea menor a 10". Asi que si, si cambias de variable, a otro nombre, no pasa nada, pero tendras que cambiar "contador = contador + 1;" por el nuevo nombre de la variable. Ya que si no existe una variable que haga de contador para la condicion del while, entonces el bucle se ejecuta infinitamente.

Linton

Ah vaya, creo que me he liado con lo de if  :silbar: :P

Pero, entonces, ¿todo lo que se puede programar con un bucle while es el número de veces que se repite la jugada?  :huh:

¡Muchas gracias por tu ayuda, intento buscar ese manual básico pero hasta los más "básicos" dan por sentado que has estudiado programación dos años!  :-(

fary

Con un bucle while puedes repetir todo lo que tu quieras el numero de veces que desees.

Sigue leyendo y provando, todos hemos pasado por lo tuyo, pero al final con ganas acabas consiguiendo  :)

un saludo!
Un byte a la izquierda.

Linton

Uf ¿de verdad te sentías tan idiota como yo, al empezar?  :P

Te haré caso, muchas gracias, un saludote  :)

Linton

¡¡Atiza, acabo de entenderlo, con lo claro que estaba!! Mira que era sencillo  :P

Desde luego hago bien sintiéndome imbécil  :-X :-\ :-[ :-\ :-\

Linton

Cita de: $Edu$ en 17 Junio 2013, 22:07 PM
Busca otro tutorial, que sea un libro, un pdf de esos largos, que comience desde 0.

¿Cuál me recomiendas? Tengo una pila de manuales, casi todos en inglés, y con ninguno avanzo :-[

Muchas gracias, un saludo.

EFEX

Cita de: Linton en 20 Junio 2013, 11:47 AM
¿Cuál me recomiendas? Tengo una pila de manuales, casi todos en inglés, y con ninguno avanzo :-[

www.javascriptya.com.ar  :)
GITHUB