El software necesita una forma de tomar decisiones a medida que avanza en la ejecución del código. Aquí es donde entra en juego el flujo de control. El flujo de control del programa se nos proporciona mediante el uso de declaraciones de control. Estas son las palabras clave especiales en el lenguaje C # que le permiten al programador configurar cosas como ramificaciones, bucles e incluso saltos completos a nuevos puntos en el programa durante la ejecución. Echemos un vistazo a estas palabras clave y construcciones como if, switch, do while, for, foreach, while, break, return y algunas otras.


La ifdeclaración de C #

Al utilizar una ifdeclaración en un programa, un desarrollador puede tomar una decisión en función de una determinada condición. Imagínese llegar a una bifurcación en el camino. ¿Qué camino eliges? En su cabeza, probablemente evaluará algunas condiciones. Si voy a la izquierda, llegaré al destino a tiempo. Si voy a la derecha, el paisaje será mejor. Así que decides ir bien como lo haría cualquier persona racional. La ifdeclaración en C # nos permite hacer este tipo de cosas en código. La instrucción if selecciona una rama para su ejecución en función del valor de una expresión booleana. Esa es una forma elegante de decir, si algo es cierto, haz esto, de lo contrario haz aquello. Aquí hay un ejemplo en código C #.

Aquí hay otro ejemplo de la declaración if que demuestra que a veces no es necesario incluir llaves.

Podemos ver en el fragmento de arriba que no se usan llaves para rodear la llamada a StayHome (). En la mayoría de los casos, sin embargo, se considera un buen estilo de codificación usar llaves porque hacen que el código sea más fácil de mantener y más legible. Solo puede omitir las llaves cuando solo hay una línea de código para evaluar. Las llaves siempre son necesarias si necesita ejecutar más de una instrucción. Entonces, cuando configure un bloque de código, o varias líneas de código, rodee eso con llaves. Si no lo hace, solo se ejecutará la primera línea después de la instrucción if. Si la primera expresión dentro de una declaración if devuelve falso, digamos que la edad es 17, entonces StayHome () no se llama. El programa saltará a la siguiente instrucción if para evaluarla. Si eso es cierto, vaya a la escuela ().


Anidar declaraciones if

Puede anidar declaraciones if si lo desea. En el código siguiente, el programa solo escribirá que "El artículo está en oferta" si ambas ifcondiciones se evalúan como verdaderas. Debe tener cuidado al anidar varias ifdeclaraciones juntas, ya que el código puede volverse difícil de leer.


Operador ternario de C #

Una declaración de control realmente conveniente que puede usar es el operador ternario, llamado operador condicional en C #. Tiene tres partes.

operador condicional ternario csharp
La primera parte es una expresión que debe devolver verdadero o falso . Si la expresión devuelve verdadero , devolveremos el valor de la parte 2 que está en el lado izquierdo de los dos puntos. De lo contrario, devolveremos el valor de la parte 3 en el lado derecho de los dos puntos. Este operador condicional es ideal para una verificación condicional rápida para asignar uno de dos valores diferentes a una variable. Así es como suele ver que se utiliza. La misma lógica exacta se puede hacer con una instrucción if, pero con un operador ternario hay menos caracteres para escribir. Es mejor usar esto para verificaciones lógicas simples. Si coloca alguna lógica complicada en el ámbito de un operador condicional, las cosas pueden volverse difíciles de leer.


Derivación

Probemos algunas ramificaciones en nuestro proyecto. Lo que queremos hacer es agregar una forma para que la clase StockStatistics determine la valoración general de la cartera de acciones. Así es como lo configuraremos.

Lo que estamos haciendo aquí es observar el precio promedio de las acciones en la cartera para tener una idea de si las cosas tienen un buen valor en la actualidad, o tal vez de caras a muy caras. Podemos agregar esto a la salida de nuestro programa modificando un par de cosas en Program.cs. Aquí, queremos agregar esta salida adicional que nos brinda información sobre la Valoración general. Para que eso suceda, también necesitamos agregar un método sobrecargado para CustomWriteLine () que toma dos parámetros de cadena.

Ahora, cuando ejecutamos el programa, obtenemos esta salida adicional como vemos aquí.
comenzar sin depurar la salida


Declaraciones de conmutador de C #

En C # también tenemos una switchdeclaración. Puede usarse para ramificar la ejecución de un programa a un conjunto de declaraciones que están dentro de una etiqueta de caso, que se crea con la palabra clave caseLa declaración de interruptor de C # hace esto al hacer coincidir el valor dentro del interruptor con los valores que especifique en la etiqueta de cada caso.

  • Restringido a números enteros, caracteres, cadenas y enumeraciones
  • Las etiquetas de caso son constantes
  • La etiqueta predeterminada es opcional

Con este conocimiento, queremos configurar una función de recomendación para la clase StockStatistic. Usaremos una declaración de cambio para ayudarnos con eso. Lo que hará esta declaración de cambio es mirar la propiedad StockValuation que acabamos de crear. Es un valor de cadena. Para cada caso, miramos el valor de la cadena para ver si coincide y, de ser así, proporcionamos la recomendación asociada.

En el archivo Program.cs, necesitaremos agregar la línea de código resaltada aquí para agregar esta salida adicional en el programa.

Podemos ver el resultado de esta nueva salida aquí.
c salida de ejemplo de interruptor agudo
La instrucción switch no es excelente para evaluar rangos, pero a veces es útil para reemplazar declaraciones if / else / if .


Iterando en C #

La iteración también se conoce como bucle . El bucle es cuando necesita o desea ejecutar un fragmento de código muchas veces. Iterar en C #, se puede utilizar cualquiera de los forwhiledo while, o foreachconstrucciones.


C # para

0
1
2
3
4
5
6
7
8
9

C # mientras

0
1
2
3
4
5
6

C # hacer mientras

0
1
2

C # foreach

Elemento # 1: 0
Elemento # 2: 5
Elemento # 3:10
Elemento # 4:15
Elemento # 5:20
Elemento # 6:25
Elemento # 7:30
Elemento # 8:35
Número de elementos: 8

También podemos practicar algunas construcciones iterativas en nuestro programa de ejemplo. Agreguemos una función que enumere todos los precios de las acciones que se han agregado al programa. Primero, en Program.cs agregaremos este código resaltado.

Luego, en StockPortolio.cs necesitaremos implementar ese método. Hace uso del tipo TextWriter en .net y recorre la colección de acciones en el programa. A medida que recorra cada uno, lo escribirá en la consola.

¡Y ahora vemos el resultado de nuestra iteración en acción!
c sostenido iterando con for loop


Saltando en C #

En C # puede saltar a un punto específico en el programa usando una de las siguientes palabras clave.

  • rotura
  • Seguir
  • ir
  • regreso

Vimos que breakse usa en combinación con la caseetiqueta dentro de una switchdeclaración. También puede ser usado dentro de un whiledo whilefor, o un foreachbucle para salir y detener el bucle.


C # descanso

Detiene el bucle de cierre más cercano o la instrucción de cambio en la que aparece.

1
2
3
4
5
6

C # continuar

Pasa el control a la siguiente iteración del while, do, for o fore cada bucle en el que aparece.

4
5

C # goto

Cambia el control directamente a un punto etiquetado en el programa.

1
2
¡Parando a las 3!

Retorno de C #

Detiene la ejecución del método donde aparece y devuelve el control al código de llamada. A menudo devuelve un valor, pero no es necesario.


Resumen de declaraciones de control de C #

En este tutorial, cubrimos los diversos tipos de declaraciones de control de flujo disponibles para nosotros en el lenguaje de programación C #. Las declaraciones de control se clasifican aproximadamente en aquellas que realizan bifurcaciones, aquellas para bucles y aquellas para saltar. Las declaraciones de bifurcación incluyen if, else if, el operador condicional y la declaración de cambio. Cuando necesitamos iterar sobre cosas, o realizar un bucle, buscamos las declaraciones for, while, do while y foreach. Por último, miramos brevemente las construcciones de salto como romper, continuar, goto y regresar.