Problemas con el entendimiento de bucles

08/06/2006 - 06:22 por Angel Said de la Vega | Informe spam
Que tal buen dia ...

Estaba terminando de leer el super tutorial que está en la página de
http://www.desarrollaconmsdn.com impartido por los maestros Guillermo Som
y Jorge Serrano, pero aun no me queda muy claro eso de los bucles, ( cuando
utilizar For, For each, Do while etc. )

Alguien sabe de un link donde pueda encontrar esta informacion para aclarar
mis dudas con bucles ??

Saludos y Mil gracias

Angel Said

Preguntas similare

Leer las respuestas

#1 Leonardo Azpurua [mvp vb]
08/06/2006 - 08:24 | Informe spam
"Angel Said de la Vega"
escribió en el mensaje
news:
Que tal buen dia ...

Estaba terminando de leer el super tutorial que está en la página de
http://www.desarrollaconmsdn.com impartido por los maestros Guillermo Som
y Jorge Serrano, pero aun no me queda muy claro eso de los bucles, (
cuando
utilizar For, For each, Do while etc. )

Alguien sabe de un link donde pueda encontrar esta informacion para
aclarar
mis dudas con bucles ??



Hola, Angel:

Formalmente, los bucles tienen un estado inicial, un cuerpo de codigo
ejecutable y una condicion de terminacion.

Cuando quieres repetir el codigo de un bucle un numero de veces, lo mas
normal es utilizar un ciclo For:

For i = 1 To 10
HacerAlgo
Next

los bucles For no siempre van de 1 a N. A veces solo quieres hacer algo con
los numeros pares:

For i = 2 To 20 Step 2
HacerAlgo
Next

Otras veces, la condicion de terminación no tiene nada que hacer con
numeros. Por ejemplo, quieres pedirle una serie de datos al usuario, pero no
sabes la cantidad de datos que va a introducir:

Do
s = InputBox("Codigo del producto a consultar")
If s <> "" Then MostrarPrecioProducto(s)
Loop While s <> ""

Estos ciclos tienen dos tipos estructurales: pre-verificacion y
post-verificacion (pre test y post test).

La primera verifica que la condicion de terminacion sea falsa antes de
ejecutar la primera verificacion:

Do While i < 10
HacerAlgoQueAfectaElValorDeI
Loop

si el valor inicial de i es >= 10, la accion (HacerAlgoQueAfectaElValorDeI)
no se ejecuta. Por el contrario, si escribimos:

Do
HacerAlgoQueAfectaElValorDeI
Loop While i < 10

la accion se ejecutará al menos una vez, independientemente del valor
inicial de i.

La otra variante es en la manera de escribir el criterio. Arriba mencione la
"condicion de terminacion", es decir, lo que tiene que ocurrir para que el
ciclo termine. Una alternativa es usar una "condicion de repeticion", o lo
que tiene que cumplirse para que el ciclo se siga repitiendo.

Estos cinco trozos de codigo hacen lo mismo:

Dim i As Integer

For i = 1 To 10
Console.WriteLine("i = {0}", i)
Next

i = 1
Do
Console.WriteLine("i = {0}", i)
i = i + 1
Loop While i <= 10

i = 1
Do While i <= 10
Console.WriteLine("i = {0}", i)
i = i + 1
Loop

i = 1
Do Until i > 10
Console.WriteLine("i = {0}", i)
i = i + 1
Loop

i = 1
Do
Console.WriteLine("i = {0}", i)
i = i + 1
Loop Until i > 10

Los ciclos For Each se usan para recorrer los elementos de una lista o
arreglo:

Dim a As Integer() = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
For Each i As Integer In a
Console.WriteLine("i = {0}", a)
Next

hace lo mismo que los ejemplos anteriores.


Salud!
Respuesta Responder a este mensaje
#2 Angel Said de la Vega
09/06/2006 - 02:22 | Informe spam
Excelente explicacion Leonardo .. mil gracias

ya me queda un poco mas claro ... ( bueno a mi lento aprendizaje ;) )

Mil gracias por el Tip ...

Saludos

Angel Said

"Leonardo Azpurua [mvp vb]" wrote:


"Angel Said de la Vega"
escribió en el mensaje
news:
> Que tal buen dia ...
>
> Estaba terminando de leer el super tutorial que está en la página de
> http://www.desarrollaconmsdn.com impartido por los maestros Guillermo Som
> y Jorge Serrano, pero aun no me queda muy claro eso de los bucles, (
> cuando
> utilizar For, For each, Do while etc. )
>
> Alguien sabe de un link donde pueda encontrar esta informacion para
> aclarar
> mis dudas con bucles ??

Hola, Angel:

Formalmente, los bucles tienen un estado inicial, un cuerpo de codigo
ejecutable y una condicion de terminacion.

Cuando quieres repetir el codigo de un bucle un numero de veces, lo mas
normal es utilizar un ciclo For:

For i = 1 To 10
HacerAlgo
Next

los bucles For no siempre van de 1 a N. A veces solo quieres hacer algo con
los numeros pares:

For i = 2 To 20 Step 2
HacerAlgo
Next

Otras veces, la condicion de terminación no tiene nada que hacer con
numeros. Por ejemplo, quieres pedirle una serie de datos al usuario, pero no
sabes la cantidad de datos que va a introducir:

Do
s = InputBox("Codigo del producto a consultar")
If s <> "" Then MostrarPrecioProducto(s)
Loop While s <> ""

Estos ciclos tienen dos tipos estructurales: pre-verificacion y
post-verificacion (pre test y post test).

La primera verifica que la condicion de terminacion sea falsa antes de
ejecutar la primera verificacion:

Do While i < 10
HacerAlgoQueAfectaElValorDeI
Loop

si el valor inicial de i es >= 10, la accion (HacerAlgoQueAfectaElValorDeI)
no se ejecuta. Por el contrario, si escribimos:

Do
HacerAlgoQueAfectaElValorDeI
Loop While i < 10

la accion se ejecutará al menos una vez, independientemente del valor
inicial de i.

La otra variante es en la manera de escribir el criterio. Arriba mencione la
"condicion de terminacion", es decir, lo que tiene que ocurrir para que el
ciclo termine. Una alternativa es usar una "condicion de repeticion", o lo
que tiene que cumplirse para que el ciclo se siga repitiendo.

Estos cinco trozos de codigo hacen lo mismo:

Dim i As Integer

For i = 1 To 10
Console.WriteLine("i = {0}", i)
Next

i = 1
Do
Console.WriteLine("i = {0}", i)
i = i + 1
Loop While i <= 10

i = 1
Do While i <= 10
Console.WriteLine("i = {0}", i)
i = i + 1
Loop

i = 1
Do Until i > 10
Console.WriteLine("i = {0}", i)
i = i + 1
Loop

i = 1
Do
Console.WriteLine("i = {0}", i)
i = i + 1
Loop Until i > 10

Los ciclos For Each se usan para recorrer los elementos de una lista o
arreglo:

Dim a As Integer() = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
For Each i As Integer In a
Console.WriteLine("i = {0}", a)
Next

hace lo mismo que los ejemplos anteriores.


Salud!



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida