Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
cap:cs:bloques [2017/05/06 11:52] user [If] |
cap:cs:bloques [2018/02/20 09:18] (actual) |
||
|---|---|---|---|
| Línea 30: | Línea 30: | ||
| ===== 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 ===== | ||