using System;
class Loop {
static void Main () {
int i;
int[] a = new int[10];
for (i = 0; i < 10; i++) a[i] = 10 + i;
i = 0;
while (++i < 10) Console.WriteLine ($"{i} -> {a[i]}");
do {
i--;
Console.Write ($"{i} -> {a[i]}");
if (i > 4) {
Console.WriteLine ();
continue;
}
Console.WriteLine (" **");
if (i == 1) break;
} while ( i > 0);
foreach (int val in a) Console.WriteLine (val);
}
}La versión C#, como siempre, muy parecida a su equivalente Java,
ambos lenguajes siguiendo el modelo C. Bucles for ,
while y do .. while siendo for
una versión compacta de los bucles while. Además C# usa
break y continue para controlar la ejecución
del bucle, permitiendo parar el bucle con la primera y pasar al
siguiente ciclo con la segunda.
C# también define la palabra clave goto con lo que es
posible escribir tus bucles de la siguiente forma:
using System;
class Ex {
static void Main () {
int i = 0;
bucle0:
Console.WriteLine ($"Hola {i}");
i++;
if (i == 10) goto final0;
goto bucle0;
final0:
Console.WriteLine ("The End");
}
}Si bien, nadie te va a recomendar hacerlo así y además es bastante más largo.
SABÍAS QUE?
C# nos permite incluir varias instrucciones en cada uno de los elementos de
forde forma similar a lo que nos permite el lenguaje C. Por ejemplo:int i, j; for (i =0, j =3, Console.WriteLine ($"INICIO: i={i} j={j}"); i < j; i++, j--, Console.WriteLine ($"PASO: i={i} j={j}"));
Al igual que sucede con Java, C# nos proporciona la palabra clave
foreach para iterar de forma sencilla estructuras de datos
complejas (concretamente clases que implementen el interface
IEnumerable). Además foreach se puede utilizar
con instancias de tipos que cumplan las siguientes condiciones:
- Tipos que poseen el método público
GetEnumerator(). - El tipo de retorno de
GetEnumeratortiene una propiedad pública llamadaCurrenty un método público llamadoMoveNext()que retorna un booleano..
Podéis escribir bucles infinitos en C# de la misma forma que en C o Java. Aquí tenéis algunos ejemplos:
for (;;) {
//repeate esto
}
while (true) {
//repite esto
}
do {
// repite esto
} while (true);
infinito:
goto infinitoResumen
- C# ofrece bucles
for,while,do... while - C# ofrece la palabra clave
breakpara terminar prematuramente un bucle - C# ofrece la palabra clave
continuepara ejecutar la siguiente iteración del bucle inmediatamente. - C# ofrece bucles
foreachpara recorrer tipos que soportan el interfazIEnumerableo disponen del métodoGetEnumerator. - C# ofrece la palabra clave
gotocon la que también se pueden implementar bucles
■
