Por fin he vuelto. Estimados amigos, he tenido que dejar por
una temporada el blog de Aprender a programar para mejorar mis conocimientos anglo-lingüísticos y me han absorbido todo el tiempo del mundo,
pero a partir de ahora... si nada ni nadie lo impide, seguiremos en primera línea. Vamos allá.
Bueno pues las instrucciones de iteración nos permiten repetir ciertas
acciones o crear un bucle. Un bucle se puede repetir un número de veces
limitado porque aunque se puede hacer ilimitado no tiene ningún sentido crear
un programa que no acabe nunca, ¿no?. Dentro de estos bucles se ejecutan las instrucciones
ordenadamente salvo cuando utilizamos otro tipo de instrucciones que son las de
salto.
Tenemos varios tipos de instrucciones de salto y la primera
de todas es do-while (hacer mientras…). Ahora vamos a ver un ejemplo para C# y
su equivalente para VB .NET. Esta instrucción ejecuta un bloque de
instrucciones repetidas veces hasta que una determinada instrucción se evalúa
como false. Para C# el bloque de código se incluye entre llaves y acto seguido
se incluye la expresión booleana. En el siguiente ejemplo creamos una pequeña aplicación
que imprimirá por pantalla los valores desde 0 a 2. Como veis, al entrar en el
bucle, se imprime el primer valor de x que es cero, después le suma a x una
unidad (x++ esto de verdad que suma una unidad, es un operador y lo veremos en un
futuro) , efectúa la comprobación x vale ahora 1, ¿1 es menor que 3?, si
(true), pues volvemos al inicio del bucle do y se vuelve a ejecutar el mismo
código hasta que x llega a tener el valor de 3 que en ese caso 3 no es menor
que 3 y la expresión booleana sería false. En este momento, saldría del bucle. Para
VB.NET es igual pero con Do y Loop While donde el contenido de código incluido
entre ambas instrucciones, es lo que se ejecutará mientras la expresión While
sea false. El aspecto fundamental de esta instrucción es que por lo menos, el
bloque de código se ejecuta una sola vez ya que una vez ejecutado es cuando se
comprueba la expresión booleana que permitirá seguir ejecutando este o salir
del bucle.
C#
public class DoWhile_Prueba
{
public static void Main()
{
int
x = 0;
Console.WriteLine("SALIDA EN
PANTALLA");
do
{
Console.WriteLine(x);
x++;
} while (x < 3);
Console.WriteLine("FIN
DE BUCLE");
}
}
/*
SALIDA EN PANTALLA:
0
1
2
*/
Vb.NET
Public
Class DoWhile_Prueba
Public Shared Sub Main()
Dim x As Integer = 0
Console.WriteLine("SALIDA EN
PANTALLA")
Do
Console.WriteLine(x)
x += 1
Loop While x < 3
Console.WriteLine("FIN DE BUCLE")
End Sub
End Class
'
'
SALIDA EN PANTALLA:
'
0
'
1
'
2
Ahora vamos a ver la instrucción while y su equivalente en
VB.NET While y End While. En este tipo de instrucciones, la expresión booleana
se verifica al principio, por tanto si al comienzo no se verifica la expresión ,
no se ejecutará ni una sola vez el contenido de código del bucle (esta es la
principal diferencia con Do-While). Con esta instrucción, he incluido un cosita nueva, en la anterior
instrucción metimos un operador de adición y en esta un parámetro. Cuando le
damos formato a un texto como es en el siguiente caso, una vez vale una cosa y
a la siguiente vale otra, bueno pues utilizamos unas llaves con un número en su
interior y cuando se ejecute, se buscará por orden el primer parámetro
disponible. Un ejemplo y lo entenderéis.
Console.WriteLine("Hola {0}
{0}, me llamo {1} {2}, y esto es una {3}", "amigos",
"Joaquín", "Martínez", "prueba");
Esto imprimirá en pantalla “Hola amigos amigos, me llamo Joaquín Martínez y esto es una prueba”.
Si os dais cuenta en cada hueco donde antes existía una llave y un número,
ahora existe su equivalente en texto con el mismo orden en el que encontraba. Aunque no lo parezca, esto es muy
útil!
C#
class WhileTest_Prueba
{
static void Main()
{
Console.WriteLine("Salida en pantalla")
int n = 1;
while (n < 6)
{
Console.WriteLine("Valor actual de n es {0}", n);
n++;
}
}
}
/*
Salida en pantalla:
Valor actual de n es 1
Valor actual de n es 2
Valor actual de n es 3
Valor actual de n es 4
Valor actual de n es 5
*/
VB.NET
Class
WhileTest_Prueba
Private Shared Sub Main()
Dim n As Integer = 1
Console.WriteLine("Salida
en pantalla")
While n < 6
Console.WriteLine("Valor
actual de n es {0}", n)
n
+= 1
End While
End Sub
End
Class
'
'
Salida en pantalla:
'
Valor actual de n es 1
'
Valor actual de n es 2
'
Valor actual de n es 3
'
Valor actual de n es 4
'
Valor actual de n es 5
Ojo con este tipo de instrucciones porque SIEMPRE deben
tener una salida, es decir que alguna vez se debe cumplir el valor de la
expresión en false para poder salir del bucle, porque si no se convertiría en
un bucle infinito sin ninguna utilidad. En el siguiente ejemplo ocurriría esto.
Ya que el valor de nes 4 y la instrucción se ejecutará mientras que n sea mayor
que 3, por tanto entraría en un bucle sin fin. Otra forma de salir de un bucle
es mediante break, goto o return para C# o Exit While o Exit For, GoTo o
Return.
C#
class
WhileTest_Prueba
{
static void Main()
{
int n = 4;
while (n > 3)
{
Console.WriteLine("Valor actual de n is {0}", n);
n++;
}
}
}
VB.NET
Class
WhileTest_Prueba
Private Shared Sub Main()
Dim n As Integer = 1
Console.WriteLine("Salida
en pantalla")
While n < 6
Console.WriteLine("Valor actual de n is {0}", n)
n += 1
Return
End While
End Sub
End
Class
'
' Output:
'
Valor actual de n es 1
'
Valor actual de n es 2
'
Valor actual de n es 3
'
Valor actual de n es 4
'
Valor actual de n es 5
Otra instrucción de
iteración, for para C# y For Next para VB.NET. Estas se ejecutan n-veces hasta
que una expresión sea false y son muy útiles para recorrer matrices o para
casos en los que conocemos el número de veces que se va a repetir un bucle. Por
ejemplo vamos a ejecutar una instrucción 5 veces. La instrucción for realiza
varias funciones. El primero y solo se hace una vez es declarar un variable i
asignándole el valor de 1 (podríamos asignarle el valor 34 o -23), después la
expresión de evaluación en este caso i<=5, es decirse ejecutará hasta que el
valor de i sea menor o igual que 5 y por último el valor siguiente después de
ejecutar el bloque que en este caso incrementa en 1 el valor de i (podríamos restarle
1 a i mediante --i o sumarle 2 mediante i+=2 aunque para VB.NET se utiliza Step).
Para VB.NET cerramos el
bloque de código mediante la instrucción Next.
C#
class
For_Prueba
{
static void Main()
{
Console.WriteLine("Salida");
for
(int i = 1; i <= 5; i++)
{
Console.WriteLine(i);
}
}
}
/*
Salida:
1
2
3
4
5
*/
VB.NET
Class
For_Prueba
Private Shared Sub Main()
Console.WriteLine("Salida")
For i As Integer = 1 To 5
Console.WriteLine(i)
Next
End Sub
End
Class
'' Salida:
'
1
'
2
'
3
'
4
'
5
Ejemplo de for obteniendo los números pares hasta 100
C#
for
(int i = 1; i <= 100; i+=2)
{
Console.WriteLine(i);
}
VB.NET
For
i As Integer =
1 To 100 Step 2
Console.WriteLine(i)
Next
Por último la instrucción foreach se utiliza para recorrer
colecciones y ¿qué es una colección? Pues imaginemos que miramos la galería de
fotos de nuestro móvil, seleccionamos una y vamos pasando una a una. Pues esto
es lo que hace la instrucción foreach, pasar de una foto a otra por toda la colección.
¿Y qué hace? Pues el bloque de código contenido, se
ejecutará para cada elemento de la colección. En el siguiente ejemplo, creamos una
colección de números enteros y rotamos por cada uno de ellos. Como veis, esta instrucción
tiene también varios elementos primero foreach, segundo y se ejecuta cada vez,
crea un objeto del mismo tipo que los elementos de la colección y le asigna el
valor de uno de estos y por último dice de donde debe extraer esos objetos.
Pues para el siguiente caso se imprimirá por pantalla 0,1,1,2,3,5,8 y 13. Y a
continuación expongo otra forma de recorrer una colección mediante una
instrucción for diciendo que desde el valor con índice 0 hasta el valor menor
que el número de elementos que tiene, imprima en pantalla el valor con el índice
de la instrucción, curioso ¿no?
Para VB.NET foreach se convierte en For Each el valor del
elemento declarado y la colección desde donde se extraerán los elementos
acabando y cerrando el bloque de código con Next.
C#
int[]
coleccion = new int[]
{ 0, 1, 1, 2, 3, 5, 8, 13 };
foreach
(int element in
coleccion)
{
System.Console.WriteLine(element);
}
for
(int i = 0; i < coleccion.Length; i++)
{
System.Console.WriteLine(coleccion[i]);
}
VB. NET
Dim
coleccion As Integer()
= New Integer()
{0, 1, 1, 2, 3, 5, 8, 13}
For
Each element As
Integer In
coleccion
System.Console.WriteLine(element)
Next
For i As Integer = 0 To coleccion.Length - 1
System.Console.WriteLine(coleccion(i))
Next
Pues esto esto esto es todo amigos!!
Saludos “der Waki”
No hay comentarios:
Publicar un comentario