INSTRUCCIONES CONDICIONALES
Las instrucciones condicionales o de selección se utilizan para determinar que código se debe ejecutar y cuándo se debe ejecutar. C# incluye dos instrucciones de selección la instrucción if que ejecuta código en base a una condición lógica y la instrucción switch que ejecuta código con base en un valor.
IF
Una condición es una expresión que puede ser verdadera o falsa. La instrucción if en C# permite que una aplicación tome una decisión con base en el valor de una condición. Por ejemplo, la condición "calificación es mayor o igual a 70" determina si un estudiante pasó una prueba. Si la condición en una instrucción if es verdadera, se ejecuta el cuerpo de la instrucción if. Si la condición es falsa, el cuerpo no se ejecuta.
Las condiciones en las instrucciones if pueden formarse mediante el uso de los operadores de igualdad (== y !=) y los operadores relacionales (>, <, >= y <=). Los dos operadores de igualdad (== y !=) tienen cada uno el mismo nivel de precedencia, los operadores relacionales (>, <, >= y <=) tienen cada uno el mismo nivel de precedencia y los operadores de igualdad tienen menor precedencia que los operadores relacionales. Todos se asocian de izquierda a derecha.
INSTRUCCION DE SELECCION DOBLE IF...ELSE
La instrucción de selección simple if realiza una acción indicada sólo cuando la condición es verdadera; en caso contrario se omite la acción. La instrucción de selección doble if...else nos permite especificar una acción a realizar cuando la condición es verdadera y una acción distinta cuando la condición es falsa.
SWITCH
La instrucción switch (switch-statement) selecciona una lista de instrucciones que se van a ejecutar que tengan asociada una etiqueta de switch (switch-label) que se corresponda con el valor de la expresión de switch.
Una instrucción switch está formada por la palabra clave switch, seguida de una expresión entre paréntesis (denominada expresión de switch) y de un bloque switch (switch-block). El bloque-switch consiste en varias o ninguna secciones-de-switch (switch-section), encerradas entre llaves. Cada sección-de-switch está formada por una o varias etiquetas-de-switch (switch-label) seguidas de una lista-de-instrucciones.
El tipo aplicable en una instrucción switch está establecido por la expresión de switch. Si el tipo de la expresión de switch es sbyte, byte, short, ushort, int, uint, long, ulong, char, string o tipo-enumerado, ése será el tipo aplicable en la instrucción switch. En caso contrario, debe existir una conversión implícita definida por el usuario del tipo de la expresión de switch a uno de los posibles tipos aplicables: sbyte, byte, short, ushort, int, uint, long, ulong, char y string. Si no existe una conversión implícita o existe más de una, se producirá un error en tiempo de compilación.
La expresión de constante de cada etiqueta case debe denotar un valor de tipo convertible implícitamente al tipo aplicable en la instrucción switch. Si dos o más etiquetas case de la misma instrucción switch especifican el mismo valor constante, se producirá un error en tiempo de compilación.
INSTRUCCIONES DE ITERACIÓN
Las instrucciones de iteración o de repetición permiten realizar una serie de operaciones una y otra vez mientras una condición dada se cumpla o sea verdadera.
WHILE
En el caso de la instrucción while, el bloque de intrucciones se ejecutará mientras la expresión se cumpla, esto nos permite entrar al ciclo solo si la expresión da el valor que permita la entrada al ciclo, caso contrario no ejecutara ni siquiera una vez.
El while nos permite evalua la condición primero y entonces entrar al ciclo.
Una instrucción while se ejecuta de la siguiente forma:
•Se evalúa la expresión-booleana (boolean-expression).
•Si la expresión booleana devuelve true, el control se transfiere a la instrucción incrustada. Cuando el control alcanza el punto final de la instrucción incrustada (posiblemente desde la ejecución de una instrucción continue), se transfiere al inicio de la instrucción while.
•Si la expresión booleana devuelve false, el control se transfiere al punto final de la instrucción while.
DO
La instrucción do (do-statement) ejecuta una instrucción incrustada una o varias veces dependiendo de una condición.
do-statement:
do embedded-statement while ( boolean-expression ) ;
Una instrucción do se ejecuta de la siguiente forma:
•El control se transfiere a la instrucción incrustada.
•Cuando el control alcanza el punto final de la instrucción incrustada (posiblemente desde la ejecución de una instrucción continue), se evalúa la expresión booleana (boolean-expression). Si la expresión booleana devuelve true, el control se transfiere al inicio de la instrucción do. En caso contrario, el control se transfiere al punto final de la instrucción do.
Dentro de la instrucción incrustada de la instrucción do, puede utilizar una instrucción break para transferir el control al punto final de la instrucción do (terminando así la iteración de la instrucción incrustada), y una instrucción continue para transferir el control al punto final de la instrucción incrustada (de esta forma se realizará otra iteración de la instrucción do).
La instrucción incrustada de una instrucción do es alcanzable si la instrucción do es alcanzable.
El punto final de una instrucción do es alcanzable si se cumple al menos una de las siguientes condiciones:
•La instrucción do contiene una instrucción break alcanzable que provoca la salida de la instrucción do.
•El punto final de la instrucción incrustada es alcanzable y la expresión booleana no tiene el valor constante true.
FOR
La instrucción for (for-statement) evalúa primero una secuencia de expresiones de inicialización y, mientras se cumpla una determinada condición, ejecuta repetidas veces una instrucción incrustada y evalúa una secuencia de expresiones de iteración.
for-statement:
for ( for-initializeropt ; for-conditionopt ; for-iteratoropt ) embedded-statement
for-initializer:
local-variable-declaration
statement-expression-list
for-condition:
boolean-expression
for-iterator:
statement-expression-list
statement-expression-list:
statement-expression
statement-expression-list , statement-expression
El inicializador-de-for (for-initializer), si existe, es una declaración-de-variable-local o una lista de expresiones-de-instrucción separadas por comas. El ámbito de una variable local declarada por un inicializador-de-for (for-initializer) se inicia en el declarador-de-variable-local (local-variable-declarator) y se extiende hasta el final de la instrucción incrustada. El ámbito incluye la condición-de-for (for-condition) y el iterador-de-for (for-iterator).
La condición-de-for (for-condition), si existe, debe ser una expresión-booleana.
El iterador-de-for (for-iterator), si existe, consiste en una lista de expresiones-de-instrucción separadas por comas.
Una instrucción for se ejecuta de la siguiente forma:
•Si existe un inicializador-de-for, se ejecutan los inicializadores de variable o las expresiones de instrucción en el orden en el que se hayan codificado. Este paso sólo se realiza una vez.
•Si existe una condición-de-for, se evalúa.
•Si no existe una condición-de-for, o existe y la evaluación devuelve true, el control se transfiere a la instrucción incrustada. Cuando el control alcanza el punto final de la instrucción incrustada (posiblemente desde la ejecución de una instrucción continue), las expresiones del iterador-de-for, si existen, se evalúan en secuencia y, a continuación, se realiza una nueva iteración empezando por la evaluación de la condición for, como se describe en el paso anterior.
•Si existe una condición-de-for y devuelve false, el control se transfiere al punto final de la instrucción for.