Autor
|
Tema: [Duda] estructura While-Wend, no entiendo (Leído 6,254 veces)
|
Dreamaker
Desconectado
Mensajes: 277
|
Hola amigos, bueno abro este thread porque estoy leyendo sobre la estructura While-Wend que nunca la entendí (siempre pensé que era lo mismo que el For-Next) y vi un codigo de ejemplo que les muestro a continuación: Private Sub Command1_Click() Dim contador As Integer 'Declaramos la variable While contador <> Text1 'Mostramos en el formulario el valor de la variable contador Me.Caption = contador 'Incrementamos la variable en 1 contador = contador + 1 Wend MsgBox "Termino el bucle" End Sub
Lo que dice la explicación que estoy leyendo a modo de ejemplo y no entendí es lo siguiente: Un ejemplo, agrega un Command1 al formulario y un control Text1. Cuando ejecutemos el ejemplo, se deberá escribir un número dentro del control textBox. Entonces se creará un bucle While, que mostrará en el Caption del formulario, es decir en la barra de título, el intervalo desde 0 hasta el número que hayamos ingresado en el Text1. Es decir si ingresamos el número 9000, en el caption del formulario se imprimirán los número desde 0 hasta 9000.
Para hacer esto, dentro del bucle While pondremos una variable llamada Contador, que en cada pasada se incrementará en 1, pero cuando la variable Contador sea igual al número que haya en el Text1, se finalizará el bucle y se mostrará un mensaje que finalizó el mismo Mi duda es: ¿No hay que asignarle ya el valor de 1 a la variable contador para que empiece desde allí? O basta con ingresar Contador = Contador + 1 que le ingresa el valor de 1 y después sigue? (Entonces supongo que si le suma 1, es porque antes tenía el valor de 0) Muchas gracias! Y haber quien me puede dar una mano con el concepto para ayudarme a entenderlo..
|
|
« Última modificación: 2 Abril 2010, 20:24 pm por Dreamaker »
|
En línea
|
|
|
|
Shell Root
|
...No hay que asignarle ya el valor de 1 a la variable contador para que empiece desde allí? O basta con ingresar Contador = Contador + 1 que le ingresa el valor de 1 y después sigue? (Entonces supongo que si le suma 1, es porque antes tenía el valor de 0 Tù lo haz dicho! While, es como una Condicion-Bucle, donde si cumple la condicion, se ejecuta el bucle. Contador, es una variable entera, asì que se inicializa en 0. Despues si cumple la condicion, entra al ciclo, dentro del ciclo, se le aumenta un item a la variable Contador y asi sucesivamente hasta que el valor de Contador sea diferente al valor del Text.
|
|
|
En línea
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
* Traduciendo de Ingles a Español seria: While [ condicion] es Decir Mientras Que [ condicion] wendotro wendWhile [ condicion] otros: Do-Loop ("Es lo mismo trabaja igual"... Bueno casi), Until se usa para cambiar el valor pero en Do-Loop. Do-Loop trabaja casi igual que While-Wend solo que Do-Loop puede usar Until en su Do o en su loop. Do while [condicion] Loop ó Do Loop [condicion] y la condicion puede ir tanto en Do como en loop de igual forma el Until pero Until es solo usado CUANDO no se usa el While OJO!¡. Do Until [ condicionLoopó DoLoop Until [ condicion] Ejemplo con While-WendPega esto en un Form Private a As Boolean Private Sub Form_Click() a = Not a ' // volteamos el valor con Not Call bucle End Sub Private Sub Form_Load() Show a = True Call bucle End Sub Private Sub bucle() 'While a = True ' // no es nesesario poner a = true While a DoEvents ' // para que no se trabe el programa xP Caption = Val(Caption) + 1 Wend End Sub
Sin wend Private Sub bucle() Do While a DoEvents ' // para que no se trabe el programa xP Caption = Val(Caption) + 1 Loop End Sub
Do until Private Sub bucle() Do Until a DoEvents ' // para que no se trabe el programa xP Caption = Val(Caption) + 1 Loop End Sub
Loop until Private Sub bucle() Do DoEvents ' // para que no se trabe el programa xP Caption = Val(Caption) + 1 Loop Until a End Sub
OJO la variable a es de tipo booleano por lo tanto no lo iguale a true o a false ya que no me hacia falta, es decir: 5+5=10 esto devuelve true o false seguns ea y seria un tipo booleano Sangriento Infierno Lunar!¡.
|
|
« Última modificación: 2 Abril 2010, 20:12 pm por BlackZeroX▓▓▒▒░░ »
|
En línea
|
The Dark Shadow is my passion.
|
|
|
|
cassiani
Desconectado
Mensajes: 978
« Anterior | Próximo »
|
no es difícil, solo sigue los flujos de los datos, aprende a identificar que bloque es el mas adecuado a la operación que debes realizar, si hay palabras reservadas que no entiendes, busca su funcionamiento y vuelve a echarle un ojo al code, lee un tuto básico, ya veras que en poco tiempo no pensaras lo mismo sobre los bucles. http://www.elguille.info/vb/cursos_vb/basico/indice.htm saludos!!
|
|
|
En línea
|
|
|
|
Dreamaker
Desconectado
Mensajes: 277
|
Gracias! A ver si lo termino de entender, con FOR hago un ciclo repetitivo durante la cantidad de veces que yo quiera, en cambio con WHILE ésto pasa MIENTRAS la condición se cumpla y HASTA que se deje de cumplir, una vez que se deja de cumplir deja de ejecutarse el bucle sin haber tenido fijada una cantidad de ciclos, osea que es condicional. Estoy en lo correcto con lo que dije? Por cierto aparte de la pregunta anterior, alguien tiene idea de que diferencia hay aparte con el DO y el LOOP que también sirven para lo mismo creo? (Con algún ejemplo básico en lo posible) Necesitaba saberlo para el colegio ya que la próxima semana me toman evaluación
|
|
« Última modificación: 3 Abril 2010, 04:10 am por Dreamaker »
|
En línea
|
|
|
|
Shell Root
|
Estoy en lo correcto con lo que dije? Simon, estás en lo cierto! Do While: Se utiliza generalmente cuando no sabemos cuantas veces se habrá de ejecutar el bucle, igual que el bucle WHILE, con la diferencia de que sabemos seguro que el bucle por lo menos se ejecutará una vez. Loop, es la terminacion del Do, es decir: Do {Acciones} Loop While {Acciones} Wend
|
|
« Última modificación: 3 Abril 2010, 05:13 am por Alex@ShellRoot »
|
En línea
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
|
|