La toma de decisiones en la programación es similar a la toma de decisiones en la vida real. También en programación, un determinado bloque de código debe ejecutarse cuando se cumple alguna condición.
Un lenguaje de programación utiliza declaraciones de control para controlar el flujo de ejecución del programa en función de ciertas condiciones. Estos se utilizan para hacer que el flujo de ejecución avance y se bifurque en función de los cambios en el estado de un programa.
Las sentencias condicionales de C#:
Declaración IF
La declaración if verifica la condición dada. Si la condición se evalúa como verdadera, el bloque de código/declaraciones se ejecutará; de lo contrario, no se ejecutará.
Sintaxis:
if(condition) { //code to be executed }
Nota: Si los corchetes { } no se usan con declaraciones if, la declaración que está justo al lado solo se considera asociada con la declaración if.
Ejemplo:
if (condition) statement 1; statement 2;
En este ejemplo, solo se considera que la instrucción 1 está asociada con la instrucción if.
Diagrama de flujo:
Ejemplo:
Csharp
// C# program to illustrate if statement using System; public class GFG { public static void Main(string[] args) { string name = "Geek"; if (name == "Geek") { Console.WriteLine("GeeksForGeeks"); } } }
Producción:
GeeksForGeeks
IF – Sentencia else
La sentencia if evalúa el código si la condición es verdadera, pero qué pasa si la condición no es verdadera, aquí viene la sentencia else. Le dice al código qué hacer cuando la condición if es falsa.
Sintaxis:
if(condition) { // code if condition is true } else { // code if condition is false }
Diagrama de flujo:
Ejemplo:
Csharp
// C# program to illustrate // if-else statement using System; public class GFG { public static void Main(string[] args) { string name = "Geek"; if (name == "Geeks") { Console.WriteLine("GeeksForGeeksr"); } else { Console.WriteLine("Geeks"); } } }
Producción:
Geeks
Instrucción
if-else-if ladder La instrucción if-else-if ladder ejecuta una condición de varias instrucciones. La ejecución comienza desde arriba y se verifica para cada condición if. Se ejecutará la declaración del bloque if que se evalúa como verdadera. Si ninguna de las condiciones if se evalúa como verdadera, entonces se evalúa el último bloque else.
Sintaxis:
if(condition1) { // code to be executed if condition1 is true } else if(condition2) { // code to be executed if condition2 is true } else if(condition3) { // code to be executed if condition3 is true } ... else { // code to be executed if all the conditions are false }
Diagrama de flujo:
Ejemplo:
Csharp
// C# program to illustrate // if-else-if ladder using System; class GFG { public static void Main(String[] args) { int i = 20; if (i == 10) Console.WriteLine("i is 10"); else if (i == 15) Console.WriteLine("i is 15"); else if (i == 20) Console.WriteLine("i is 20"); else Console.WriteLine("i is not present"); } }
Producción:
i is 20
Anidado: instrucción If La declaración
if dentro de una declaración if se conoce como if anidada. La declaración if en este caso es el destino de otra declaración if o else. Cuando más de una condición debe ser verdadera y una de ellas es la subcondición de la condición principal, se puede usar anidado si.
Sintaxis:
if (condition1) { // code to be executed // if condition2 is true if (condition2) { // code to be executed // if condition2 is true } }
Diagrama de flujo:
Ejemplo:
csharp
// C# program to illustrate // nested-if statement using System; class GFG { public static void Main(String[] args) { int i = 10; if (i == 10) { // Nested - if statement // Will only be executed if statement // above it is true if (i < 12) Console.WriteLine("i is smaller than 12 too"); else Console.WriteLine("i is greater than 15"); } } }
Producción:
i is smaller than 12 too
Declaración
Switch La declaración Switch es una alternativa a las largas escaleras if-else-if. La expresión se verifica para diferentes casos y se ejecuta la única coincidencia. La instrucción break se usa para salir del interruptor. Si no se usa el descanso, el control fluirá a todos los casos debajo de él hasta que se encuentre el descanso o el interruptor llegue a su fin. Hay un caso predeterminado (opcional) al final del cambio, si ninguno de los casos coincide, se ejecuta el caso predeterminado.
Sintaxis:
switch (expression) { case value1: // statement sequence break; case value2: // statement sequence break; . . . case valueN: // statement sequence break; default: // default statement sequence }
Diagrama de flujo del interruptor – caja:
Ejemplo:
Csharp
// C# example for switch case using System; public class GFG { public static void Main(String[] args) { int number = 30; switch(number) { case 10: Console.WriteLine("case 10"); break; case 20: Console.WriteLine("case 20"); break; case 30: Console.WriteLine("case 30"); break; default: Console.WriteLine("None matches"); break; } } }
Producción:
case 30
Interruptor
anidado El caso de interruptor anidado está permitido en C#. En este caso, el interruptor está presente dentro de otra caja de interruptores. El interruptor interno está presente en uno de los casos en el interruptor principal.
Ejemplo:
Csharp
// C# example for nested switch case using System; public class GFG { public static void Main(String[] args) { int j = 5; switch (j) { case 5: Console.WriteLine(5); switch (j - 1) { case 4: Console.WriteLine(4); switch (j - 2) { case 3: Console.WriteLine(3); break; } break; } break; case 10: Console.WriteLine(10); break; case 15: Console.WriteLine(15); break; default: Console.WriteLine(100); break; } } }
Producción:
5 4 3