Codificación de Ciclos mediante instrucciones For Next en Visual Basic .NET
En lugar de comenzar un ciclo con una instrucción Do y terminarlo con Loop, podrá comenzarlo con For y terminarlo con Next. Sin embargo, los bucles For y Do presentan características distintas. Los ciclos For se utilizan cuando se conoce la cantidad de repeticiones deseadas para el ciclo mientras que el ciclo Do se utiliza normalmente para alcanzar una condición donde no hay una cantidad de repeticiones determinadas.
REALIZA_CICLO
.
.
.
Repetir con (Variable) desde (Inicio) hasta (Final) {Incrementa en uno cada vez} Instrucciones del ciclo
Fin Repetir
.
.
.
.
.
.
For variable=inicio To final ‘Instrucciones a realizar
Next variable
La variable que controla el número de repeticiones de un ciclo recibe el nombre de contador.
Veamos un ejemplo:
Dim IntContador As Integer
For IntContador=0 To 10 ‘ IntContador es la variable que controla el número de repeticiones. ‘ Instrucciones a procesar
Next IntContador
La variable se incrementa automáticamente en uno ca da vez.
Si quieres cambiar el incremento o disminuir en lugar de aumentar se usa el step. Veamos unos ejemplos:
Dim IntContador As Integer
For IntContador=0 To 10 Step 2
‘ Instrucciones a procesar
Next IntContador
Dim IntContador As Integer
For IntContador=10 To 0 Step -1
‘ Instrucciones a procesar
Next IntContador
Ejemplos
1. Construya el pseudocódigo, diagrama de flujo y el código para obtener la suma de un número indeterminado de números positivos. Para indicar el final de la captura se introduce un número negativo.
TOTAL_CANTIDAD_INDEFINIDA
{Suma todos los números leídos hasta que se lee un número negativo y muestra el total}
{Total es la variable para acumular los números}
- Total = 0 ‘Se asigna un valor de cero al acumulador
- Leer Num
- Hacer mientras Num>=0
Total=Total+Num
Leer Num
- Fin Ciclo
- Escribir Total
‘ Código para el botón btnSuma
Dim Num, Total As Double
Total = 0
Num=CDbl(InputBox(«Dame Número»))
Do While Num>=0
Total = Total + Num
Num=CDbl(InputBox(«Dame Número»))
Loop
MsgBox «Total: «&CStr(Total)
Observa:
- La variable Total es llamada acumulador porque «acumula» todos los valores. Debe iniciar con cero para no influir en el cálculo de la suma.
- No está limitada la cantidad de números que se pueden leer.
- Lee Num una vez para iniciar el ciclo. Si fuera negativo ese primer valor no se realizaría el ciclo ni una vez.
- Se lee al final el Num para evitar que el valor negativo de terminación se incluya en el Total. Analiza que sucedería si Leer Num estuviera antes de Total = Total + Num.
- La línea Total = Total + Num sirve para sumar el valor más reciente a todos los anteriores. Si los valores fueran: 3, 6, 4 y -5. El proceso sería el siguiente:
Total (antes de asig.) | Num | Total (después de asig.) | |
Repetición 1 | 0 | 3 | 0 + 3 = 3 |
Repetición 2 | 3 | 6 | 3 + 6 = 9 |
Repetición 3 | 9 | 4 | 9 + 4 = 13 |
Termina ciclo | 13 | -5 | No se modifica el valor de Total. |
El valor final de Total es 13.
2. Construya el pseudocódigo, diagrama de flujo y el código para obtener el producto cuatro números positivos. Si los valores fueran 2, 3, 5 y 6 el resultado sería 180.
PRODUCTO_CUATRO_NUMEROS
{Multiplica cuatro números leídos y muestra el tota l}
{Prod es la variable para acumular el producto}
- Prod = 1 ‘Se asigna un valor de uno al acumulador
- Repetir para i desde 1 hasta 4
Leer Num
Prod = Prod * Num
- Fin Repetir
- Escribir Prod
Observa:
- La condición del ciclo Do… Loop requería iniciar la variable Num con algún valor para poder revisar la condición al principio. En cambio, el ciclo Repetir no lo necesita.
- Se lee Num y luego se le multiplica.
- La variable Prod se inicializa con 1 porque los núm eros leídos se van a multiplicar. Analiza que sucedería si el valor de inicio fuera 0.
Prod (antes de asig.) | Num | Prod (después de asig.) | |
Repetición 1 | 1 | 2 | 1 * 2 = 2 |
Repetición 2 | 2 | 3 | 2 * 3 = 6 |
Repetición 3 | 6 | 5 | 6 * 5 = 30 |
Repetición 4 | 30 | 6 | 30 * 6 = 180 |
El valor final de Prod es 180
‘ Código para el botón btnProducto
Dim Num, Prod As Double
Prod = 1
For I =1 To 4
Num=CDbl(InputBox(«Dame Número»))
Prod = Prod * Num
Next I
MsgBox «Total: «&CStr(Total)
Los ciclos nos permiten escribir una sola vez instrucciones que se realizan muchas veces. No obstante, es necesario incluir contadores, acumuladores y realizar algunas modificaciones en el código para aprovechar el ciclo.
Si solamente son cuatro números por qué complicarnos con un ciclo. Porque los ciclos pequeños nos permiten aprender a utilizar esta opción para cuando la cantidad de repeticiones vuelva obligatorio su uso. No dejes de usar un ciclo cuando se requiera porque un programa no solamente debe funcionar sino que debe hacerlo con la menor cantidad posible de código. De otra manera el programa no se considera eficiente. Si te acostumbras a trabajar de esa forma, tú mismo estarás limitando el tamaño de tus aplicaciones. Después de cierta cantidad de líneas sería muy complicado conservar ese estilo de programación.