Las estructuras de control

5
Documento de estudio – Programación 3 (Profesor Miguel Ángel Villelli) [Añ o] Las estructuras de control Las estructuras de control permiten modificar el orden de ejecución de las instrucciones en su código. Hay dos tipos de estructuras disponibles: Las estructuras de decisión: orientarán la ejecución de su código en función de los valores que pueda tener una expresión de test. Las estructuras de bucle: harán ejecutar una porción de su código un cierto número de veces hasta que se cumpla una condición o mientras una condición sea cumplida. 1. Estructuras de decisión Hay dos tipos de estructuras de decisión: a. Estructura if Cuatro sintaxis están a su disposición para la instrucción If. if (condición) instrucción; Si la condición es verdadera, entonces la instrucción se ejecuta; en este caso, «condición» debe ser una expresión que, una vez evaluada, debe devolver una booleana true o false. Con esta sintaxis, sólo la instrucción colocada después del if, se ejecutará si la condición es verdadera. Para poder ejecutar varias instrucciones en función de una condición, la sintaxis que hay que utilizar es: if (condición) {Instrucción 1; ... Instrucción n;} En este caso, el grupo de instrucciones ubicado en las llaves será ejecutado si la condición es verdadera. También puede especificar una o varias instrucciones que se ejecutarán si la condición es falsa. if (condición) {Instrucción 1; ... Instrucción n;} else {Instrucción 1; ... Instrucción n;} b. Estructura switch

Transcript of Las estructuras de control

Page 1: Las estructuras de control

Documento de estudio – Programación 3 (Profesor Miguel Ángel Villelli) [Año]

Las estructuras de controlLas estructuras de control permiten modificar el orden de ejecución de las instrucciones en su código. Hay dos tipos de estructuras disponibles:

Las estructuras de decisión: orientarán la ejecución de su código en función de los valores que pueda tener una expresión de test.

Las estructuras de bucle: harán ejecutar una porción de su código un cierto número de veces hasta que se cumpla una condición o mientras una condición sea cumplida.

1. Estructuras de decisión

Hay dos tipos de estructuras de decisión:

a. Estructura if

Cuatro sintaxis están a su disposición para la instrucción If.

if (condición) instrucción;

Si la condición es verdadera, entonces la instrucción se ejecuta; en este caso, «condición» debe ser una expresión que, una vez evaluada, debe devolver una booleana true o false. Con esta sintaxis, sólo la instrucción colocada después del if, se ejecutará si la condición es verdadera.

Para poder ejecutar varias instrucciones en función de una condición, la sintaxis que hay que utilizar es:

if (condición) {Instrucción 1; ...Instrucción n;}

En este caso, el grupo de instrucciones ubicado en las llaves será ejecutado si la condición es verdadera.

También puede especificar una o varias instrucciones que se ejecutarán si la condición es falsa.

if (condición){Instrucción 1;...Instrucción n;} else{Instrucción 1;...Instrucción n;}

b. Estructura switch

La estructura switch permite un funcionamiento equivalente, pero ofrece una mejor legibilidad del código. La sintaxis es la siguiente:

switch (variable) {case valor1: Bloque de código 1 case valor2: Bloque de código 2 case valor3:

Page 2: Las estructuras de control

Documento de estudio – Programación 3 (Profesor Miguel Ángel Villelli) [Año]

Bloque de código 3 default: Bloque de código 4 }

El valor de la variable se evalúa al principio de la estructura (por el switch). Luego el valor obtenido se compara con el valor especificado en el primer case (valor1).

Si los dos valores son iguales, entonces el bloque de código 1 se ejecuta.

Si no, el valor obtenido se compara con el valor del case siguiente; si hay correspondencia, el bloque de código se ejecuta y así sucesivamente hasta el último case.

Si ningún valor concordante se encuentra en los diferentes case, entonces el bloque de código especificado en el default se ejecuta. Cada uno de los bloques debe terminarse con la instrucción break.

El valor que hay que probar puede estar contenido en una variable, pero también puede ser el resultado de un cálculo. En este caso, el cálculo sólo se efectúa una vez al principio del switch. El tipo del valor probado puede ser numérico o cadena de caracteres. El tipo de la variable probada debe corresponder por supuesto al tipo de los valores en los diferentes case.

String respuesta;

Console.WriteLine("¿su respuesta?");

respuesta=Console.ReadLine();

switch (respuesta)

{

case "si":

Console.WriteLine("respuesta positiva");

break;

case "no":

Console.WriteLine("respuesta negativa");

break;

default:

Console.WriteLine("respuesta de gallego");

break;

}

2. Las estructuras de bucle

Cuatro estructuras están a nuestra disposición:

whiledo ... whileforforeach

Todas tienen como objetivo ejecutar un bloque de código cierto número de veces en función de una condición.

Page 3: Las estructuras de control

Documento de estudio – Programación 3 (Profesor Miguel Ángel Villelli) [Año]

a. Estructura while

while (condición) {Bloque de código}

Esta sintaxis permite ejecutar el bloque de código mientras la condición es verdadera. Se evalúa la condición incluso antes del primer paso en el bucle. Por lo tanto, el bloque de código podrá no ejecutarse nunca si la condición es falsa desde el principio. En caso de que la condición sea verdadera en el primer paso, el bloque de código se ejecuta. La condición se prueba otra vez y, si es verdadera, se vuelve a ejecutar el bloque de código. En el caso contrario, la próxima instrucción ejecutada será la que sigue al bloque de código. Sin embargo es posible prever una salida «prematura» del bucle utilizando la instrucción break. La ejecución se retoma, por lo tanto, en la línea que sigue inmediatamente al bloque de código.

b. Estructura do ... while

La estructura do while utiliza la sintaxis siguiente:

do {Bloque de código} while (condition);

Esta sintaxis nos permite garantizar que el bloque de código se ejecutará al menos una vez, ya que la condición se probará al final del bloque de código.

c. Estructura for

Cuando conoce el número de iteraciones que se deben realizar en un bucle, es preferible utilizar la estructura for. Para poder utilizar esta instrucción, debe declarar previamente una variable que actúe de contador.

Esta variable puede declarase en la estructura for o fuera. En este caso, se debe declarar antes de la estructura for.

La sintaxis general es la siguiente:

for(inicialización del contador ;condición ;instrucción de iteración){ Bloque de código}

La parte de inicialización se ejecuta una sola vez en el momento de la entrada en el bucle. La parte de condición se evalúa en el momento de entrar en el bucle, y luego en cada iteración. El resultado de la evaluación de la condición determina si el bloque de código se ejecuta. Para ello, hace falta que la condición sea evaluada como true. Después de la ejecución del bloque de código se ejecuta a su vez la instrucción de iteración. Luego se prueba de nuevo la condición, y así sucesivamente hasta que la condición se evalúa como false.

A continuación, dos bucles for en acción para visualizar una tabla de multiplicar.

int k; for(k=1;k<10;k++){ for (int l = 1; l < 10; l++) { Console.Write(k * l + "\t"); } Console.WriteLine();}

Obtenemos el siguiente resultado:

1 2 3 4 5 6 7 8 9

Page 4: Las estructuras de control

Documento de estudio – Programación 3 (Profesor Miguel Ángel Villelli) [Año]

2 4 6 8 10 12 14 16 183 6 9 12 15 18 21 24 274 8 12 16 20 24 28 32 36 5 10 15 20 25 30 35 40 45 6 12 18 24 30 36 42 48 54 7 14 21 28 35 42 49 56 63 8 16 24 32 40 48 56 64 72 9 18 27 36 45 54 63 72 81

La instrucción break puede utilizarse para provocar una salida prematura del bucle. La instrucción continue permite volver immediatamente a la evaluación de la condición. Por supuesto, se deben ejecutar estas dos instrucciones de manera condicional; si no, las líneas de código ubicadas después no se ejecutarán nunca.

d. Estructura foreach

Otra sintaxis del bucle for permite ejecutar un bloque de código para cada elemento contenido en una matriz o en una colección. La sintaxis general de esta instrucción es la siguiente:

foreach (elemento in matriz) {Bloque de código}

No hay noción de contador en esta estructura, ya que efectúa ella misma las iteraciones en todos los elementos presentes en la matriz o la colección.

La variable elemento sirve para extraer los elementos de la matriz o de la colección para que el bloque pueda manejarla. El tipo de la variable element debe ser compatible con el tipo de elementos almacenados en la matriz o la colección. Por el contrario, no debe preocuparse del número de elementos, ya que la instrucción foreach es capaz de gestionar ella misma el desplazamiento en la matriz o la colección. ¡A continuación se muestra un ejemplo para aclarar la situación!

Con un bucle clásico:

string[] matriz={"rojo","verde","azul","blanco"};

int contador;

for (contador = 0; contador < matriz.Length; contador++)

{

Console.WriteLine(matriz[contador]);

}

Con el bucle for each:

string[] matriz={"rojo","verde","azul","blanco"};

foreach (string s in matriz)

{

Console.WriteLine(s);

}

La variable utilizada para recorrer la matriz debe ser declarada obligatoriamente en la instrucción foreach, y no fuera.