break
continue
goto
return
throw
Y para VB.NET
Exit For
Exit Do
Exit While
Exit Select
Continue For
goto
Return
Paso a paso, vamos a detallar una por una excepto la última que la incluiremos en el tratamiento de errores.
La instrucción break
nos permita terminar un bucle o salir de una instrucción switch, es decir por ejemplo, si creamos un bucle do while
que vaya sumando 1 a una variable y le ponemos la condición de que cuando esa variable llegue a 100 salga del bucle, pues en la parte verdadera de esa condición es donde debemos poner el break
, para que así salga y no siga sumando. Para VB.NET, se utiliza Exit
For
para un bucle For Next
, Exit
Do para un bucle
Do While
, Exit While
para un bucle While
y Exit Select
para una instrucción Select Case
. Como veis, C# se complica menos y utiliza break para todos los casos.
for (int i = 1; i <= 1000; i++) { if (i == 100) { break; } Console.WriteLine(i); }
Mismo caso pero con una instrucción while
int n = 0; while (true) { n += 1; if (n==100) { break; } }
Y su equivalente para Vb.NET
For i As Integer = 1 To 1000 If i = 100 Then Exit For End If Console.WriteLine(i) Next Dim n As Integer = 0 While True n += 1 If n = 100 Then Exit While End If End While
continue
, es una instrucción que no suelo utilizar a menudo, pero es curiosa en cuanto a su funcionamiento. Esta lo que provoca dentro de un bucle for o foreach
, pasar a la siguiente iteración, por ejemplo.
for (int i = 1; i <= 10; i++) { if (i < 9) { continue; } Console.WriteLine(i); }
En este ejemplo cuando i es menor que 9 la instrucción continue evita que se escriba en la consola pasando a darle un valor nuevo a i hasta que i es mayor o igual a 9, donde entonces se imprimirá el valor en pantalla. Su equivalente en VB.NET es Continue For
.
For i As Integer = 1 To 10 If i < 9 Then Continue For End If Console.WriteLine(i) Next
Goto
transfiera o envía el control del programa a un sitio concreto del programa y ¿cómo sabe donde tiene que enviarlo?, pues porque en ese lugar debe existir una etiqueta. También puede usarse para transferir el control de programa a una etiqueta de una instrucción switch
. Además, como es normal, podemos usarla también para salir de bucles, ¿no crees? Exponemos ejemplos. En el primero, aparecerá en pantalla ‘He salido’ cuando el valor de i valga 9.
C#
for (int i = 1; i <= 10; i++) { if (i > 8) { goto SalidaPrograma; } } SalidaPrograma: Console.WriteLine("He salido");
VB.NET
For i As Integer = 1 To 10 If i > 8 Then GoTo SalidaPrograma End If Next SalidaPrograma: Console.WriteLine("He salido")
En el caso de salto dentro de una instrucción switch
, lo vemos a continuación en el que dependiendo del valor de n, (el resto no me valen), en el que para el caso de 2 y 3, efectuará la suma propia del caso, pero además lo reenviará al valor 1 donde volverá a sumarle 25, ¿ok?
C#
int valor=0; switch (n) { case 1: valor += 25; break; case 2: valor += 25; goto case 1; case 3: valor += 50; goto case 1; default: Console.WriteLine("Esto no me vale"); break; }
VB.NET
Dim valor As Integer = 0 Select Case n Case 1 valor += 25 Exit Select Case 2 valor += 25 goto case 1 Case 3 valor += 50 goto case 1 Case Else Console.WriteLine("Esto no me vale") Exit Select End Select
La instrucción return
acaba la ejecución del método donde se ha ejecutado y devuelve el control al método que llamó antes, además puede devolver algún valor. Con un ejemplo lo veremos con más claridad.
Si ejecutamos el método Inicio, se llamará al método CalcularAreaCirculo
con un valor de radio igual a 5. Dentro del método de cálculo, se efectuarán los cálculos pertinentes para obtener el área y acto seguido se ejecuta return area, devolviendo el valor del área al método que lo llamó que es Inicio. Una vez este tiene el valor, lo visualiza en pantalla. Lo que si tenemos que tener en cuenta para VB.NET, es que para que un método devuelva un valor, debe ser una función (Function), cosa que en C# en vez de void se le asigna un tipo.
C#
private void Inicio() { int radius = 5; double result = CalcularAreaCirculo(radius); Console.WriteLine("El area es {0:0.00}", result); Console.ReadKey(); } private double CalcularAreaCirculo(int r) { double area = r * r * Math.PI; return area; }
VB.NET
Private Sub Inicio() Dim radius As Integer = 5 Dim result As Double = CalcularAreaCirculo(radius) Console.WriteLine("El area es {0:0.00}", result) Console.ReadKey() End Sub Private Function CalcularAreaCirculo(r As Integer) As Double Dim area As Double = r * r * Math.PI Return area End Function
Pues esto es todo en cuanto a las instrucciones de salto, fácil, ¿no?. Pues nos vemos en la próxima entrega!!
Saludos “der Waki”