Anda di halaman 1dari 8

Marco Besteiro y Miguel Rodrguez

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,

dependiendo del valor de una expresin. Su estructura es la siguiente:


if (expresin_booleana)
{
//BloqueDeCodigoUno
}
else
{
//BloqueDeCodigoDos
}

Si expresin_booleana es True entonces se ejecuta BloqueDeCodigoUno y si es


False se ejecuta BloqueDeCodigoDos. No es necesario utilizar siempre la parte else
y se puede omitir.
Es la instruccin de control ms utilizada y no se diferencia de la forma en que se utiliza
en Java o C o C++. La nica diferencia es que en C# slo se puede evaluar una
expresin booleana. En C# la sentencia siguiente no es vlida.
int unEntero=7;
if(unEntero)
{
//Codigo
}

En C, se admite esta expresin porque lo que se evala es si unEntero es cero o distinto


de cero.
Si el bloque a ejecutar consta de una sola instruccin, no es necesario utilizar las llaves,
aunque se puede hacer. En general esto sucede con todas las instrucciones de control.
Por ejemplo:
if (a<=b)
Console.WriteLine(a<=b);
//Sin llaves
else
{
Console.WriteLine(a>b);
Console.WriteLine(Esto est dentro del bucle else);
}

1/8

Marco Besteiro y Miguel Rodrguez

Instrucciones de Control

Puede, por supuesto, utilizarse sentencias if anidadas.

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:
-

No puede omitirse el break correspondiente a cada sentencia case. Dara un


error de compilacin. Para operar como en C o C++ habra que trabajar con la
sentencia goto. Se recomienda al lector que no la utilice. Siempre es posible
programar las cosas de tal manera que se omita esta sentencia.
En C#, la sentencia switch permite evaluar int, string, char y enum. Esto
proporciona una enorme flexibilidad a esta instruccin.

Por ejemplo:
void EjecutarMetodo(string comando) {
switch (comando.ToLower()) {
case "run":
DoRun();
break;
case "save":
DoSave();
break;
case "quit":
DoQuit();

2/8

Marco Besteiro y Miguel Rodrguez

Instrucciones de Control

break;
default:
InvalidCommand(comando);
break;
}
}

while.
Esta

instruccin

repite

un

bloque

de

cdigo

mientras

una

determinada

expresin_booleana sea True. Si es False se salta a la instruccin inmediatamente


posterior al bloque while. Las llaves no son necesarias si el bloque de cdigo es una

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++;
}
}
}

El bloque de cdigo no se ejecuta si la expresin_booleana es False. La salida de


este programa es:
1
2
3
4
5

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

Marco Besteiro y Miguel Rodrguez

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

Marco Besteiro y Miguel Rodrguez

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

Es el tipo del identificador.


identificador

Nombre de un iterador que identifica cada elemento del array u objeto


Collection.
expresion
Objeto Collection o array.
//codigo

El bloque de cdigo que ser ejecutado.


El cdigo se ejecuta para cada elemento del array o coleccin. Despus, el control pasa
a la siguiente sentencia del bloque de cdigo

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

Marco Besteiro y Miguel Rodrguez

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 ;

Esta sentencia permite terminar una secuencia de sentencias, es decir, salir de un


determinado bucle. Se utiliza en las sentencias switch. Tambin se utiliza para salir de
un bucle for, o while, etc.
En general, esta sentencia provoca la salida inmediata del bucle. El control del
programa pasa a la siguiente sentencia despus del bucle.
Por ejemplo:
using System;
class UnaClase
{
public static void Main()
{
for (int i = 1; i <= 100; i++)
{
if (i == 5)
break;
Console.WriteLine(i);
}
Console.WriteLine(Esta sentencia se ejecuta fuera del bucle);
}
}
La salida de este programa es:
1

6/8

Marco Besteiro y Miguel Rodrguez

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);
}
}
}

La salida de este programa es:


9
10

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

En el cdigo anterior, al llegar a la sentencia goto bilbao, se salta hasta la etiqueta


bilbao. La etiqueta se ignora, pero se comienza a ejecutar las sentencias posteriores a
ella.

7/8

Marco Besteiro y Miguel Rodrguez

Instrucciones de Control

return.
Su forma general es la siguiente:
return expresionopt ;

Se utiliza para volver de manera explcita desde un mtodo. Se puede utilizar en


cualquier parte de un mtodo para que la ejecucin salte y vuelva al punto en que ha
sido llamado el mtodo. Provoca que el mtodo finalice inmediatamente. Habitualmente
se utiliza expresionopt para devolver un valor al punto de llamada del mtodo. En C#
un mtodo puede devolver un valor u objeto de cualquier tipo.
Ejemplo:
using System;
namespace PruebaNamespace
{
class Circunferencia
{
public double radio;
public const double PI=3.14;
public Circunferencia(double radio)
{
this.radio=radio;
}
public double CalcularArea()
{
return PI*radio*radio;
}
public static void Main()
{
Circunferencia c=new Circunferencia(2.2);
double area=c.CalcularArea();
Console.WriteLine("Para radio {0} el area es {1}",
c.radio,area);
}
}
}

La salida de este programa es:


Para radio 2.2 el area es 15.1976

8/8

Anda mungkin juga menyukai