Você está na página 1de 3

Sentencia IF... THEN... ELSE...

Mediante esta estructura podemos seleccionar un cdigo a ejecutar (sentencias) en funcin de que una condicin a evaluar sea verdadera o falsa. CASO A.- Esta estructura permite ejecutar condicionalmente una o ms sentencias y puede escribirse de la forma siguiente: If condicin Then Si la condicin es True (verdadera), se ejecutan las sentencias que estn a continuacin de Then Sentencia(s) 1 Else Sentencia(s) 2 End If CASO B.- Para indicar que se quiere ejecutar uno de varios bloques de sentencias dependientes cada uno de ellos de una condicin, la estructura adecuada es la siguiente: If condicin1 Then Sentencia(s) 1 ElseIf condicin2 Then Sentencia(s) 2 Elseif condicin 3 Then Sentencia(s) 3 Else Sentencia-n End If y si la condicin es False (falsa), se ejecutan las sentencias que estn a continuacin de Else
End If Then Else

Then ElseIf

Then Else

End If

Si se cumple la condicion1 se ejecutan las sentencias1 y se va directamente a End If, y si no se cumple, se examinan secuencialmente las condiciones siguientes hasta Else, ejecutndose las sentencias correspondientes al primer ElseIf cuya condicin se cumpla y de all se va a End If. Si todas las condiciones son falsas, se ejecutan las sentencias-n correspondientes a Else, que es la opcin por defecto. Por ejemplo, Numero = 53 (Se inicializa la variable). If Nmero < 10 Then Dgitos = 1 ElseIf Nmero < 100 Then (En este caso la condicin se cumple (True) luego se ejecuta lo siguiente y se termina la ejecucin yendo a End If). Digitos = 2 Else (En el caso en que no se cumplan los dos anteriores se asigna 3) Dgitos = 3 End If

Sentencia FOR... NEXT La sentencia For da lugar a un lazo o bucle, y permite ejecutar un conjunto de sentencias repetidas veces. Su forma general es: For variable = expresion1 To expresion2 [Step expresion3] [Sentencias] Exit For [Sentencias] Next [variable] Cuando se ejecuta una sentencia For, primero se asigna el valor de la expresion1 a la variable y se comprueba si su valor es mayor o menor que la expresion2. En caso de ser menor se ejecutan las sentencias, y en caso de ser mayor el control del programa salta a las lneas a continuacin de Next. Todo esto sucede en caso de ser la expresion3 positiva. En caso contrario se ejecutarn las sentencias cuando la variable sea mayor que expresion2. Una vez ejecutadas las sentencias, la variable se incrementa en el valor de la expresion3, o en 1 si Step no se especifica, volvindose a efectuar la comparacin entre la variable y la expresion2, y as sucesivamente. La sentencia Exit For es opcional y permite salir de un bucle For... Next antes de que ste finalice. Otra forma de interpretar la sentencia For Next For varContador = nPrincipio To nFin [Step nIncremento] [Cdigo o Sentencias] [Exit For] [Cdigo o Sentencias] Next [varContador] La variable varContador acta como contador de las ejecuciones del bucle; se inicializa con el valor de nPrincipio, comenzando a ejecutar el cdigo contenido en el cuerpo de la estructura. Al llegar a Next, si se ha incluido la clusula Step, se sumar o restar a varContador el valor de nIncremento y se volver a ejecutar el bloque de cdigo sucesivamente hasta que varContador tenga el mismo valor que nFin o superior, momento en el cual, el programa pasar a la siguiente lnea despus de Next. Si durante la ejecucin del cdigo contenido en For...Next, se encuentra una sentencia Exit For, el control del programa pasar inmediatamente a la lnea siguiente a Next. Es posible poner varias sentencias Exit For dentro de un bucle For...Next, para permitir la salida del bucle en diversas situaciones. El valor de nIncremento influye en la manera de procesar el contador. Si nIncremento es un nmero positivo o cero, varContador ha de ser menor o igual a nFin; si es un nmero negativo, varContador ha de ser mayor o igual que nFin; si no se especifica nIncremento, por defecto el bucle For...Next se incrementar en 1 En el cdigo fuente siguiente podemos ver varias formas de uso de esta estructura de control:
Public Sub Main () Dim lnContador As Integer Dim lnCont2 As Integer Dim lnAcumula As Integer Dim lcCadena As String bucle simple, recorremos el contador y acumulamos valores en una variable lnAcumula = 50 For lnContador = 1 To 10 lnAcumula = lnAcumula + 3 Next lnContador

bucle que contiene otro bucle anidado, el de primer nivel, suma una cantidad y la incluye en una variable, el bucle anidado convierte a cadena el nmero y lo acumula a una variable de cadena, no se ha incluido la clusula Step en estos bucles ni en el anterior, por lo que el incremento es en 1 lnAcumula = 20 lcCadena = "" For lnContador = 1 To 10 lnAcumula = lnAcumula + 5 For lnCont2 = 1 To 3 lcCadena = lcCadena & Str(lnAcumula) Next Next En el siguiente bucle se hace un incremento del contador en dos, por lo que slo se ejecuta cinco veces lnAcumula = 12 For lnContador = 1 To 10 Step 2 lnAcumula = lnAcumula * 2 Next En este bucle el contador se disminuye en cuatro, por lo que el valor inicial del contador ha de ser mayor que el final lnAcumula = 56 For lnContador = 28 To 6 Step -4 lnAcumula = (lnAcumula * 4) / 2 Next El siguiente bucle no llega a ejecutarse debido a que el valor inicial del contador es superior al final, y no se ha especificado una clusula Step con un incremento en negativo lnAcumula = 1 For lnContador = 10 To 6 lnAcumula = lnAcumula + 20 Next End Sub

Você também pode gostar