elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  No entiendo la secuencia de un bucle
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: No entiendo la secuencia de un bucle  (Leído 6,806 veces)
Linton

Desconectado Desconectado

Mensajes: 239



Ver Perfil
No entiendo la secuencia de un bucle
« en: 19 Febrero 2013, 18:58 pm »

Veamos, es lo siguiente:

Código
  1. num = 54
  2. intento = 0
  3. while intento != num:
  4.    intento = int(input("Adivina la cifra: "))
  5.    if intento > num:
  6.        print("Alto")
  7.    elif intento < num:
  8.        print ("Bajo")
  9. print ("Acertaste")

Línea 3: Mientras que el intento sea diferente al num, entonces ocurrirá...
Y entonces la línea 4 define el intento. ¿¿Pero cómo va a definir después qué es el intento?? ¿No tendría que hacerlo antes?  >:(

 :-\ Esto de los bucles carece de la menor lógica para mí, si alguien me echa una mano se lo agradeceré infinito. Gracias, un saludo.



En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: No entiendo la secuencia de un bucle
« Respuesta #1 en: 19 Febrero 2013, 19:10 pm »

el while es un ciclo...

el siempre volverá a evaluar la linea 3 si su intento era erroneo... entonces pasará a la 4 para pedir el nuevo valor... si es correcto, ignorará el if y cuando salte a la linea 3 saldrá del ciclo...


En línea

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

Desconectado Desconectado

Mensajes: 239



Ver Perfil
Re: No entiendo la secuencia de un bucle
« Respuesta #2 en: 19 Febrero 2013, 19:37 pm »

No entiendo muy bien esa construcción, la verdad  :-\

Tampoco entiendo por qué establece al principio que intento = 0  :huh: :huh: :huh: :huh:

Gracias por tu ayuda, un saludo.
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: No entiendo la secuencia de un bucle
« Respuesta #3 en: 19 Febrero 2013, 19:55 pm »

Sería muy fácil de explicar en una pizarra... dibuja una línea imaginária desde la línea 3 hasta la 8, o imagina una pelota de ping pong que va desde la línea 3 hasta la 8 y la pelota rebota sin parar de arriba a abajo entre ese bloque de código hasta que intento séa el número correcto, aunque no es del todo así, pero si no lo entiendes de esa manera... xD

Tampoco entiendo por qué establece al principio que intento = 0  :huh: :huh: :huh: :huh:
Sería una mala costumbre no otorgarle un valor inicial a una variable, aunque el valor fuese "nulo", o aunque el valor no se vaya a procesar.

saludos

EDITO: mira que explicación más buena:
http://es.wikipedia.org/wiki/While

y http://en.wikipedia.org/wiki/While
« Última modificación: 19 Febrero 2013, 20:07 pm por EleKtro H@cker » En línea



Linton

Desconectado Desconectado

Mensajes: 239



Ver Perfil
Re: No entiendo la secuencia de un bucle
« Respuesta #4 en: 19 Febrero 2013, 20:36 pm »

...imagina una pelota de ping pong que va desde la línea 3 hasta la 8 y la pelota rebota sin parar de arriba a abajo entre ese bloque de código hasta que intento séa el número correcto...
Si ya sé que es un proceso cíclico  :) Lo que no entiendo es el orden de la construcción.


Sería una mala costumbre no otorgarle un valor inicial a una variable
¿Por qué? Si ya se van a extraer diferentes valores del input  :huh: Eso no tiene lógica.

Gracias por la ayuda, un saludo.
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: No entiendo la secuencia de un bucle
« Respuesta #5 en: 19 Febrero 2013, 20:49 pm »

¿Por qué? Si ya se van a extraer diferentes valores del input  :huh: Eso no tiene lógica.
  • para hacer más entendible la lectura de un código, por ejemplo.
  • para que una una variable no de error por no tener un valor definido (algo que se ve mucho en Batch por ejemplo)

No se me ocurre más ahora mismo

saludos!
En línea



Linton

Desconectado Desconectado

Mensajes: 239



Ver Perfil
Re: No entiendo la secuencia de un bucle
« Respuesta #6 en: 19 Febrero 2013, 20:54 pm »

¿Y por qué no se hace así?

Código
  1. edad = int(input("Escribe tu edad: "))
  2. while edad < 18 #lo que sea

Es la secuencia lógica.
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: No entiendo la secuencia de un bucle
« Respuesta #7 en: 19 Febrero 2013, 21:07 pm »

¿Y por qué no se hace así?

Código
  1. edad = int(input("Escribe tu edad: "))
  2. while edad < 18 #lo que sea

Es la secuencia lógica.


EDITO: ups perdón, había leido while not xD

Pero es que en el ejemplo que das no es necesario un búcle, puedes usar una comparación (IF).



La caracteristica principal de un búcle es poder repetir indefinidamente un bloque de código, y en tu ejemplo la variable "edad" está fuera del búcle, lo que quiere decir que con "input" le das un valor UNA SOLA VEZ, y si el valor es menor que "18" entonces el while se quedaría loopeando etérnamente si dentro del bloque del búcle no modificas la variable "edad" a un valor mayor de "18" para que se cumpla la condición, porque solo tiene un valor para comparar (el valor que le des anteriormente con el userinput).

¿Es eso lo que no entiendes?

saludos
« Última modificación: 19 Febrero 2013, 21:46 pm por EleKtro H@cker » En línea



engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: No entiendo la secuencia de un bucle
« Respuesta #8 en: 19 Febrero 2013, 21:21 pm »

¿Y por qué no se hace así?

Código
  1. edad = int(input("Escribe tu edad: "))
  2. while edad < 18 #lo que sea

Es la secuencia lógica.


si lo haces así tomas el valor antes del while... si la condicion no se cumple, caerás en un ciclo infinito ya que no vuelves a hacer el

Código:
edad = int(input("Escribe tu edad: "))
En línea

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.
HdM


Desconectado Desconectado

Mensajes: 1.674



Ver Perfil
Re: No entiendo la secuencia de un bucle
« Respuesta #9 en: 19 Febrero 2013, 21:33 pm »

Citar
si la condicion no se cumple, caerás en un ciclo infinito

Al contrario, no entrará en el bucle.

@ Linton:

Por eso se inicializa a 0 la 1ª vez, para asegurar la entrada al bucle y muestre el mensaje que corresponda (ya en función de la entrada que dé el usuario en el input), por lo menos una vez.

No sé si habrás visto Do-While, quizá ver 1º esta forma te ayude a entender mejor el funcionamiento de los bucles.

Un saludo.

En línea

- Nice to see you again -
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Secuencia fibonacci
Java
Erik# 7 16,981 Último mensaje 1 Octubre 2008, 18:04 pm
por Sk9ITk5Z
Duda (Parar bucle con dato boolean) [bucle while]
Java
Dem0ny 5 18,629 Último mensaje 17 Diciembre 2008, 17:43 pm
por Dem0ny
Automatizar una secuencia en una web.
Programación Visual Basic
kas8355 4 2,732 Último mensaje 29 Abril 2009, 19:36 pm
por kas8355
Bucle incremental con secuencia de valores ajustados
Programación C/C++
VladisMSX1 3 2,686 Último mensaje 14 Mayo 2012, 17:41 pm
por VladisMSX1
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines