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:
CitarUn 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..
Cita de: Dreamaker en 2 Abril 2010, 19:28 PM...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.
* Traduciendo de Ingles a Español seria:
While [condicion] es Decir Mientras Que [condicion]
wend
otro
wend
While [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 [condicion
Loop
ó
Do
Loop Until [condicion]
Ejemplo con While-Wend
Pega 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!¡.
Gracias Alex@shellroot y BlackZeroX▓▓▒▒░░, aunque lo que has dicho BlackZeroX▓▓▒▒░░ es bastante avanzado para lo que entiendo hasta ahora, es un lío!!
:o :o
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!!
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 :-\
Cita de: Dreamaker en 3 Abril 2010, 04:07 AMEstoy 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