Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => Mensaje iniciado por: Linton en 17 Junio 2013, 21:17 PM

Título: [JS] Cada vez me siento más idiota, no comprendo lo más sencillo
Publicado por: Linton en 17 Junio 2013, 21:17 PM
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.
Título: Re: [JS] Cada vez me siento más idiota, no comprendo lo más sencillo
Publicado por: $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. 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.
Título: Re: [JS] Cada vez me siento más idiota, no comprendo lo más sencillo
Publicado por: Linton en 17 Junio 2013, 21:54 PM
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  :(
Título: Re: [JS] Cada vez me siento más idiota, no comprendo lo más sencillo
Publicado por: $Edu$ en 17 Junio 2013, 22:07 PM
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.
Título: Re: [JS] Cada vez me siento más idiota, no comprendo lo más sencillo
Publicado por: Linton en 17 Junio 2013, 22:25 PM
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!  :-(
Título: Re: [JS] Cada vez me siento más idiota, no comprendo lo más sencillo
Publicado por: fary en 17 Junio 2013, 22:56 PM
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!
Título: Re: [JS] Cada vez me siento más idiota, no comprendo lo más sencillo
Publicado por: Linton en 17 Junio 2013, 23:09 PM
Uf ¿de verdad te sentías tan idiota como yo, al empezar?  :P

Te haré caso, muchas gracias, un saludote  :)
Título: Re: [JS] Cada vez me siento más idiota, no comprendo lo más sencillo
Publicado por: Linton en 18 Junio 2013, 00:27 AM
¡¡Atiza, acabo de entenderlo, con lo claro que estaba!! Mira que era sencillo  :P

Desde luego hago bien sintiéndome imbécil  :-X :-\ :-[ :-\ :-\
Título: Re: [JS] Cada vez me siento más idiota, no comprendo lo más sencillo
Publicado por: Linton en 20 Junio 2013, 11:47 AM
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.
Título: Re: [JS] Cada vez me siento más idiota, no comprendo lo más sencillo
Publicado por: EFEX en 20 Junio 2013, 11:58 AM
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  :)
Título: Re: [JS] Cada vez me siento más idiota, no comprendo lo más sencillo
Publicado por: Linton en 20 Junio 2013, 13:15 PM
Muchas gracias, creo que eso es lo que necesitaba  :)