Instrucciones de Control
Instrucciones de control
Instrucciones de control de flujo
C# ofrece un conjunto de sentencias similar al de C, C++ o Java. A continuacin se
estudian muy brevemente cada una de ellas.
if
if se utiliza para dirigir la ejecucin del programa hacia dos caminos diferentes,
1/8
Instrucciones de Control
switch.
La sentencia switch evala una expresin y dependiendo de su valor ejecuta un
determinado bloque de cdigo. Proporciona una manera sencilla de ejecutar diferentes
partes de cdigo en funcin del valor de una expresin. Su forma general es:
switch (opcion) {
case valor1:
sentencia11;
sentencia12;
...
break;
case valor2:
sentencia21;
sentencia22;
...
break;
default:
sentenciad1;
sentenciad2;
...
break;
}
switch funciona de la siguiente manera: el valor de la variable o expresin opcion se
compara con cada uno de los valores literales de las sentencias case. Si coincide con
alguno, se ejecuta su cdigo asociado. Si ningn valor coincide con el valor de opcion,
se ejecuta el cdigo asociado a default.
Esta instruccin es tambin muy parecida en Java, C y C++, pero con un par de
diferencias significativas:
-
Por ejemplo:
void EjecutarMetodo(string comando) {
switch (comando.ToLower()) {
case "run":
DoRun();
break;
case "save":
DoSave();
break;
case "quit":
DoQuit();
2/8
Instrucciones de Control
break;
default:
InvalidCommand(comando);
break;
}
}
while.
Esta
instruccin
repite
un
bloque
de
cdigo
mientras
una
determinada
sola lnea.
En esta instruccin, puede no ejecutarse nunca el cdigo del bloque porque
expresin_booleana se evala antes de ejecutar el bloque y si es False se salta a la
sentencia inmediatamente posterior al bloque.
Su estructura es la siguiente:
while (expresin_booleana)
{
//Codigo
}
Ejemplo:
using System;
class InstruccionWhile
{
public static void Main()
{
int n = 1;
while (n < 6)
{
Console.WriteLine("El valor actual de n es {0}", n);
n++;
}
}
}
do-while
Esta sentencia es muy parecida a while, con la diferencia de que se evala la
expresin_booleana despus de haberse ejecutado el bloque de cdigo asociado. Por
lo tanto, el bloque de cdigo se ejecuta siempre al menos una vez.
3/8
Instrucciones de Control
do
{
//Codigo
}
while (expresin_booleana) ;
Ejemplo:
using System;
public class InstruccionDoWhile
{
public static void Main ()
{
int x;
int y = 0;
do
{
x = y++;
Console.WriteLine(x);
}
while(y < 5);
}
}
for.
Es una instruccin enormemente poderosa y verstil. La estructura general es:
for ( inicializadoropt ; condicionopt ; iteradoropt )
{
//Codigo
}
Si slo tiene una instruccin, no es necesario utilizar las llaves para el bloque. Tanto
inicializadoropt, como condicionopt como iteradoropt son opcionales.
Ejemplo:
// Bucle for
using System;
public class ClaseFor
{
public static void Main()
{
for (int i = 1; i <= 5; i++)
Console.WriteLine(i);
}
}
Al igual que las anteriores instrucciones de control, seguramente esta instruccin ser
suficientemente conocida por el lector y no se van a estudiar todas las particularidades
de ella.
4/8
Instrucciones de Control
foreach.
Esta sentencia es nueva pero extremadamente poderosa, flexible y sencilla de utilizar.
Se utiliza para recorrer una estructura de datos como puede ser una lista, un array, etc.
La sentencia foreach repite un bloque de sentencias para cada elemento de un array u
objeto de tipo Collection. Se debe utilizar siempre para obtener un informacin, es
decir, para leer. No debera ser usada para cambiar contenidos del objeto Collection
porque puede tener resultados imprevisibles.
Su estructura es:
foreach (tipo identificador in expresion)
{
//codigo
}
donde:
tipo
Ejemplo:
using System;
namespace PruebaNamespace
{
class MiClase
{
public static void Main()
{
int[] miArray = new int[]{30,62,44,55,76};
int i=0;
foreach(int elemento in miArray)
{
Console.WriteLine("el lugar {0} tiene {1}",
i,elemento) ;
i++;
}
}
5/8
Instrucciones de Control
}
}
el
el
el
el
el
lugar
lugar
lugar
lugar
lugar
0
1
2
3
4
tiene
tiene
tiene
tiene
tiene
30
62
44
55
76
Se puede observar que slo se han ledo los elementos del array. Como antes se ha
mencionado, pueden generarse errores en tiempo de ejecucin si se modifican los
elementos del array en el interior del bloque.
Sentencias de salto.
Las sentencias de salto son las siguientes:
break
continue
goto
return
break.
Su forma general es la siguiente:
break ;
6/8
Instrucciones de Control
2
3
4
Esta sentencia se ejecuta fuera del bucle
continue.
Su forma general es la siguiente:
continue ;
Es una sentencia que se utiliza para dejar de procesar el resto del cdigo de un bucle
cuando, por ejemplo, se d una determinada condicin, pero sin salir del bucle.
Ejemplo:
using System;
class ClaseContinue
{
public static void Main()
{
for (int i = 1; i <= 10; i++)
{
if (i < 9)
continue;
Console.WriteLine(i);
}
}
}
goto.
La sentencia goto realiza un salto a la sentencia etiquetada con
goto etiqueta;
goto case expresion_constante ;
goto default ;
Ejemplo:
goto bilbao;
//varias sentencias
bilbao:
otras_sentencias
7/8
Instrucciones de Control
return.
Su forma general es la siguiente:
return expresionopt ;
8/8