Página 1 de 1

como crear un siclo infinito con "while"?

Publicado: 30 Oct 2013, 23:29
por criss
hola a todos. Pues nececito aver si me pueden ayudar con esto. Resulta que quiero ponerle contraseña a una aplicación de manéra que primero el usuario cree su contraseña, luego la ingrese, cuando es correcta aparece un mensaje que confirma que la contraseña es correcta, el problema es que no logro hacer que cuando la contraseña es incorrecta, entonces me buelva a pedir que ingrese la contraseña, ya que cuando es incorrecta simplemente se cierra. Se que hay que ingresar un siclo infinito con “while”, pero no logro entender como funciona dicho comando. Aquí dejo el código para que me indíquen donde está la falla. De paso aprobecho para preguntarles si estoy usando bien el comando “if”, ya que se que al final de un “if” debe ir “endif”, pero cuando los incerto el script me da error, mientras que si no los pongo la cosa va bien como verán xd. Bueno aquí el código:

$pass=inputbox("contraseña", "crear contraseña", "")
$respuesta = inputbox("contraseña", "ingresa contraseña previamente creada", "")
if $respuesta= $pass then msgbox(0, "bienvenido", "contraseña correcta")
While if $respuesta<> $pass then inputbox ("contraseña", "ingrese la contraseña previamente creada", "", "*m")
WEnd

saludos y gracias!.

Re: como crear un siclo infinito con "while"?

Publicado: 31 Oct 2013, 00:27
por Dany
Puedes Hacerlo Así:

Código: Seleccionar todo

Do
$pass=inputbox("contraseña", "crear contraseña", "")
$respuesta = inputbox("contraseña", "ingresa contraseña previamente creada", "")
Until ($pass==$respuesta)

Saludos

:smt027

Re: como crear un siclo infinito con "while"?

Publicado: 31 Oct 2013, 00:58
por criss
OK!. gracias por la ayuda. eso si me quedan dudas. resulta que cuando utilizo el código que me indicas, el ciclo no es infinito, ya que después de ingresar 3 veces una contraseña incorrecta, no buelve a preguntarme y en vez de eso se cierra. por otro lado parece ser que el comando "do" es mas sencillo que el "while", sinembargo me gustaría si porfavor me pueden indicar como funciona, ya que es un comando usado sobretodo en las GUI que me interesa aprender. he visto en la ayuda pero no he tenido éxito aplicándolo. otra pregunta es que significa la convinación de dos signos igual juntos?: ==.

saludos!.

Re: como crear un siclo infinito con "while"?

Publicado: 31 Oct 2013, 02:25
por Dany
Explicación

Código: Seleccionar todo

Do ; hacer 
$pass=inputbox("contraseña", "crear contraseña", "")
$respuesta = inputbox("contraseña", "ingresa contraseña previamente creada", "")
Until ($pass==$respuesta) ; hasta que $pass == $respuesta 

== es para comparar cadenas caso sensitivo a minúsculas y mayúsculas.

con while lo podrías hacer así.

Código: Seleccionar todo

Local $pass=inputbox("contraseña", "crear contraseña", "")
Local $respuesta = inputbox("contraseña", "ingresa contraseña previamente creada", "")

While  Not($pass==$respuesta) ; hacer mientras $pass y $respuestas no sean iguales
$pass=inputbox("contraseña", "crear contraseña", "")
$respuesta = inputbox("contraseña", "ingresa contraseña previamente creada", "")
WEnd 

Saludos

Re: como crear un siclo infinito con "while"?

Publicado: 31 Oct 2013, 03:51
por criss
muchas gracias. si ahora comprendo mejor. eso si no entiendo que función cumplen las dos primeras lineas declaradas en el codigo del while, ya que tienen el comando local que desconosco en que situaciones se debe poner.

perdon que pregunte tanto, pero es que estoy aprendiendo hace poco xd.

saludos y gracias.

Re: como crear un siclo infinito con "while"?

Publicado: 31 Oct 2013, 04:51
por Dany
Local quiere decir el tipo de variable.

osea local jajaja.

Es lo mas básico del lenguaje.

te recomiendo leas estos dos libros y la ayuda en español si se te hace difícil el ingles.

http://www.sendspace.com/file/dqjhhx

saludos

Re: como crear un siclo infinito con "while"?

Publicado: 31 Oct 2013, 15:24
por criss
hola. aaa OK xd. muchas gracias por la ayuda y por el material, no lo tenía a sique me pondré a estudiarlo xd.

saludos!.