Diferencias
Muestra las diferencias entre dos versiones de la página.
Próxima revisión | Revisión previa | ||
cap:cs:bloques [2017/05/05 17:18] user creado |
cap:cs:bloques [2018/02/20 09:18] (actual) |
||
---|---|---|---|
Línea 2: | Línea 2: | ||
===== If ===== | ===== If ===== | ||
+ | El bloque de código ''if'' es aquel el cual nos permite validar si una expresión se cumple o no, y por lo tanto poder tomar caminos distintos dependiendo del resultado obtenido. | ||
+ | |||
+ | Cuando hablamos de bloques ''if'' tenemos las siguientes combinaciones: | ||
+ | |||
+ | * if | ||
+ | * if .. else | ||
+ | * if .. else if .. else | ||
+ | |||
+ | Las sintaxis pueden ser una de las siguientes: | ||
+ | |||
+ | if ( expresión ) { verdadero } | ||
+ | if ( expresión ) { verdadero } else { false } | ||
+ | if ( expresión ) { verdadero } else if ( expresión ) { verdadero } else { falso } | ||
+ | | ||
+ | Donde: | ||
+ | * **if**.- Es una palabra reservada con la que se inicia una pregunta. | ||
+ | * **expresión**.- Es cualquier operación de conjunto de operadores relacionales los cuales dan como resultado una valor boleano. | ||
+ | * **verdaro**.- Es el conjunto de instrucciones que se ejecutarán en caso de que la expresión sea verdadero. | ||
+ | * **else if**.- Son un conjunto de palabras reservadas las cuales nos permiten validar otra expresión en caso de que la expresión anterior no haya sido verdadera. | ||
+ | * **else**.- Es una palabra reservada la cual se encargara de gestionar todas las expresiones en caso de ser falso. | ||
+ | * **false**.- es el conjunto de instrucciones que se ejecutarán en caso de ser falso. | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
===== Switch ===== | ===== Switch ===== | ||
+ | ''switch'' es una instrucción de selección que elige una sola sección switch para ejecutarla desde una lista de candidatos en función de una coincidencia de patrones con la expresión de coincidencia. | ||
+ | |||
+ | La instrucción ''switch'' se suele usar como alternativa a un constructor ''if-else'' si una sola expresión se prueba con tres o más condiciones. | ||
+ | <code csharp> | ||
+ | int caseSwitch = 1; | ||
+ | | ||
+ | switch (caseSwitch) | ||
+ | { | ||
+ | case 1: | ||
+ | Console.WriteLine("Case 1"); | ||
+ | break; | ||
+ | case 2: | ||
+ | Console.WriteLine("Case 2"); | ||
+ | break; | ||
+ | default: | ||
+ | Console.WriteLine("Default case"); | ||
+ | break; | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | **Expresión de coincidencia** | ||
+ | |||
+ | La expresión de coincidencia proporciona el valor que debe coincidir con los patrones de las etiquetas ''case''. Su sintaxis es: | ||
+ | |||
+ | switch (expr) | ||
+ | |||
+ | En C# 6, la expresión de coincidencia debe ser una expresión que devuelva un valor de los siguientes tipos: | ||
+ | * Un carácter. | ||
+ | * Una cadena. | ||
+ | * Un booleano. | ||
+ | * Un valor entero, como int o long. | ||
+ | * Un valor enum. | ||
+ | |||
+ | A partir de C# 7, la expresión de coincidencia puede ser cualquier expresión que no sea nula. | ||
+ | |||
+ | **Sección switch** | ||
+ | |||
+ | Una instrucción ''switch'' incluye una o más secciones switch. Cada sección switch contiene una o más etiquetas case seguidas de una o más instrucciones. En el ejemplo siguiente se muestra una instrucción ''switch'' simple con tres secciones switch. Cada sección switch tiene una etiqueta ''case'', por ejemplo, case 1:, y dos instrucciones. | ||
+ | |||
+ | Una instrucción ''switch'' puede incluir cualquier número de secciones switch y cada sección puede tener una o más etiquetas case, como se muestra en el ejemplo siguiente. Pero dos etiquetas case no pueden contener la misma expresión. | ||
+ | <code csharp> | ||
+ | using System; | ||
+ | |||
+ | public class Example | ||
+ | { | ||
+ | public static void Main() | ||
+ | { | ||
+ | Random rnd = new Random(); | ||
+ | int caseSwitch = rnd.Next(1,4); | ||
+ | | ||
+ | switch (caseSwitch) | ||
+ | { | ||
+ | case 1: | ||
+ | Console.WriteLine("Case 1"); | ||
+ | break; | ||
+ | case 2: | ||
+ | case 3: | ||
+ | Console.WriteLine($"Case {caseSwitch}"); | ||
+ | break; | ||
+ | default: | ||
+ | Console.WriteLine($"An unexpected value ({caseSwitch})"); | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
===== For ===== | ===== For ===== | ||
+ | Un bloque for nos permite ejecutar iteraciones de código, es decir, nos permite que un bloque de código se ejecute en N ocasiones. | ||
+ | |||
+ | ==== La sintaxis ==== | ||
+ | |||
+ | <code csharp> | ||
+ | for (inicializador; condicion; iterador) { ... } | ||
+ | |||
+ | for (inicializador; condicion; iterador) | ||
+ | { | ||
+ | if (condicion_salida) break; | ||
+ | } | ||
+ | |||
+ | for (inicializador; condicion; iterador) | ||
+ | { | ||
+ | if (condicion_salto) continue; | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | * **for**, palabra reservada que marca el inicio de la iteración. | ||
+ | * **inicializador**, expresión que indica a partir de donde inciará la iteración. | ||
+ | * **condicion**, expresión que indica cuando terminará la iteracíon. | ||
+ | * **iterador**, expresión que indica de que modo itera el ciclo. | ||
+ | * **condicion_salida**, expresión que al cumplirse nos permitirá cortar la iteración. | ||
+ | * **break**, palabra reservada que termina la iteración sin necesidad de que se cumpla la condición. | ||
+ | * **condicion_salto**, expresión que al cumplirse nos permitirá saltar la ejecución de código hasta la próxima iteración. | ||
+ | * **continue**, palabra reservada que salta la iteración actual omitiendo todo el código que resta hasta la siguiente iteración. | ||
+ | |||
+ | ==== inicializador ==== | ||
+ | <code csharp> | ||
+ | tipo_de_dato contador = valor_inicial; | ||
+ | |||
+ | int contador = 1000; | ||
+ | |||
+ | int contador = 1000; | ||
+ | |||
+ | int contador = variable_fin; | ||
+ | </code> | ||
+ | |||
+ | * **tipo_de_dato**, cualquier tipo de dato númerico que sirva para almacenar el contador. | ||
+ | * **contador **, es la variable en la cual se almacenará el valor del contador y llevara el control de que iteración va. | ||
+ | * **valor_inicial**, puede ser una constante o una variable con el valor inicial a partir de la cual iniciará la iteración. | ||
+ | |||
+ | ==== condición ==== | ||
+ | <code csharp> | ||
+ | contador operador_condicional valor_final; | ||
+ | |||
+ | contador <= 0; | ||
+ | |||
+ | contador >= 1000; | ||
+ | |||
+ | contador == 100; | ||
+ | |||
+ | contador == variable; | ||
+ | |||
+ | contador < 1000; | ||
+ | |||
+ | contador > 0; | ||
+ | </code> | ||
+ | |||
+ | * **contador**, es la variable que se usó en el inicializador. | ||
+ | * **operador_condicional**, cualquier expresión formada por un operador de condición el cual al cumplirse se da por finalizada la iteración. | ||
+ | * **valor_final**, puede ser una constante o variable la cual indique el valor final de las iteraciones a ejecutar. | ||
+ | |||
+ | ==== iterador ==== | ||
+ | <code csharp> | ||
+ | contador operador incremento | ||
+ | |||
+ | contador++ //incremento en 1 | ||
+ | |||
+ | contador-- //decremento en 1 | ||
+ | |||
+ | contador += 2 //incremento en 2 | ||
+ | |||
+ | contador -= 2 //decremento en 2 | ||
+ | |||
+ | contador *= 2 //incremento en multiplo de 2 | ||
+ | |||
+ | contador /= 2 //decremento en multiplo de 2 | ||
+ | </code> | ||
+ | |||
+ | * **contador**, la variable que lleva el control de la iteración. | ||
+ | * **operador**, el operador que se usará para incrementar o decrementar el valor del contador para controlar la interación. | ||
+ | * **incremento**, valor por el cual controlará el incremento o decremento. | ||
===== While ===== | ===== While ===== | ||