Estructuras Condicionales en C#

Hemos visto hasta ahora que los programas van ejecutando las líneas de código con orden. Sin embargo, hay muchas situaciones en las que es preciso alterar ese orden, o bien puede ocurrir que sea necesario que se efectúen una serie de operaciones que pueden ser distintas en otras circunstancias. Por ejemplo, si el programa pide una clave de acceso, deberá continuar con la ejecución normal en caso de que la clave introducida por el usuario sea correcta, y deberá salir del mismo en caso contrario. Pues bien: para todas estas cuestiones que, por otra parte, son muy frecuentes, tenemos las estructuras de control de flujo.

En C# contamos con varias de estas estructuras, así que las iremos explicando con calma una a una, empezando en esta entrega con las estructuras condicionales. De nuevo he de avisar a los programadores de C/C++: el comportamiento de algunas de estas estructuras cambia ligeramente en C#, así que leed esta entrega atentamente, pues de lo contrario podéis encontraros con varios problemas a la hora de usarlas.

Por supuesto que en un problema se combinan estructuras secuenciales y condicionales.

Estructura Condicional if - else en c#

Es la instrucción condicional mas usada en los diversos lenguajes de programación, su formato completo y de trabajo en C Sharp es:

cargar o asignar la variable de condición;
if (condición)
{ grupo cierto de instrucciones;}
else
{ grupo falso de instrucciones; };

Tenemos 2 casos de estructuras condicionales  y son:

  1. estructuras condicionales simples 
  2. estructuras condicionales compuesta 

Estructura condicional simple.

Cuando se presenta la elección tenemos la opción de realizar una actividad o no realizar ninguna.
Representación gráfica:


Podemos observar: El rombo representa la condición. Hay dos opciones que se pueden tomar. Si la condición da verdadera se sigue el camino del verdadero, o sea el de la derecha, si la condición da falsa se sigue el camino de la izquierda.
Se trata de una estructura condicional simple porque por el camino del verdadero hay actividades y por el camino del falso no hay actividades.
Por el camino del verdadero pueden existir varias operaciones, entradas y salidas, inclusive ya veremos que puede haber otras estructuras condicionales.

Ejercicios resueltos de Estructura Condicional Simple en c# 

Ejemplo 1 

Ingresar el sueldo de una persona, si supera los 3000 pesos mostrar un mensaje en pantalla indicando que debe abonar impuestos.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EstructuraCondicionalSimple1
{
    class Program
    {
        static void Main(string[] args)
        {
            float sueldo;
            string linea;
            Console.Write("Ingrese el sueldo:");
            linea = Console.ReadLine();
            sueldo = float.Parse(linea);
            if (sueldo > 3000)
            {
                Console.Write("Esta persona debe abonar impuestos");
            }
            Console.ReadKey();
        }
    }
}

Al ejecutar el código muestra el siguiente resultado 


La palabra clave "if" indica que estamos en presencia de una estructura condicional; seguidamente disponemos la condición entre paréntesis. Por último encerrada entre llaves las instrucciones de la rama del verdadero.
Es necesario que las instrucciones a ejecutar en caso que la condición sea verdadera estén encerradas entre llaves { }, con ellas marcamos el comienzo y el fin del bloque del verdadero.
Ejecutando el programa e ingresamos un sueldo superior a 3000 pesos. Podemos observar como aparece en pantalla el mensaje "Esta persona debe abonar impuestos", ya que la condición del if es verdadera.
Volvamos a ejecutar el programa y carguemos un sueldo menor o igual a 3000 pesos. No debe aparecer mensaje en pantalla.

Ejemplo 2

Realizar un programa que que me indique si un numero es par o impar, que muestre un mensaje de salida 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EstructuraCondicionalSimple1
{
    class Program
    {
        static void Main(string[] args)
        {
            int num1;
            string linea;
            Console.Write("Ingrese un valor:");
            linea = Console.ReadLine();
            num1 = int.Parse(linea);
            if (num1 % 2 == 0)
            {
                 Console.Write("El numero es par");
            }
            else
            {
                Console.Write("El numero es impar");
            }
            Console.ReadKey();
        }
    }
}

Al ejecutar el código muestra el siguiente resultado 


Estructura Compuesta Condicional 

Cuando se presenta la elección tenemos la opción de realizar una actividad u otra. Es decir tenemos actividades por el verdadero y por el falso de la condición. Lo más importante que hay que tener en cuenta que se realizan las actividades de la rama del verdadero o las del falso, NUNCA se realizan las actividades de las dos ramas.
Representación gráfica:


En una estructura condicional compuesta tenemos entradas, salidas, operaciones, tanto por la rama del verdadero como por la rama del falso.


Ejemplo 1

Realizar un programa que solicite ingresar dos números distintos y muestre por pantalla el mayor de ellos.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EstructuraCondicionalCompuesta1
{
    class Program
    {
        static void Main(string[] args)
        {
            int num1, num2;
            string linea;
            Console.Write("Ingrese primer valor:");
            linea = Console.ReadLine();
            num1 = int.Parse(linea);
            Console.Write("Ingrese segundo valor:");
            linea = Console.ReadLine();
            num2 = int.Parse(linea);
            if (num1 > num2)
            {
                Console.Write(num1);
            }
            else
            {
                Console.Write(num2);
            }
            Console.ReadKey();
        }
    }
}

Al ejecutar el código muestra el siguiente resultado 



Operadores en c#

En una condición deben disponerse únicamente variables, valores constantes y operadores relacionales.

  • Operadores Relacionales:

        >  (mayor) 
        <  (menor)
        >= (mayor o igual)
        <= (menor o igual)
        == (igual)
        != (distinto)

  • Operadores Matemáticos

       + (más)
       - (menos)
       * (producto)
       / (división)
       % (resto de una división)  Ej.:  x=13%5;  {se guarda 3}

Hay que tener en cuenta que al disponer una condición debemos seleccionar que operador relacional se adapta a la pregunta.
Ejemplos:
 Se ingresa un número multiplicarlo por 10 si es distinto a 0.   (!=)
 Se ingresan dos números mostrar una advertencia si son iguales.  (==)

Los problemas que se pueden presentar son infinitos y la correcta elección del operador sólo se alcanza con la práctica intensiva en la resolución de problemas.

Ejercicios Resueltos de Estructura Condicional Compuesta 

Ejemplo 1 

Realizar un programa que solicite ingresar dos números distintos y muestre por pantalla el mayor de ellos.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EstructuraCondicionalCompuesta1
{
    class Program
    {
        static void Main(string[] args)
        {
            int num1, num2;
            string linea;
            Console.Write("Ingrese primer valor:");
            linea = Console.ReadLine();
            num1 = int.Parse(linea);
            Console.Write("Ingrese segundo valor:");
            linea = Console.ReadLine();
            num2 = int.Parse(linea);
            if (num1 > num2)
            {
                Console.Write(num1);
            }
            else
            {
                Console.Write(num2);
            }
            Console.ReadKey();
        }
    }
}


Al ejecutar el código muestra el siguiente resultado 


Ejemplo 2

Realizar un programa que lea por teclado dos números, si el primero es mayor al segundo informar su suma y diferencia, en caso contrario informar el producto y la división del primero respecto al segundo.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EstructuraCondicionalCompuesta2
{
    class Program
    {
        static void Main(string[] args)
        {
            int num1, num2;
            string linea;
            Console.Write("Ingrese primer valor:");
            linea = Console.ReadLine();
            num1 = int.Parse(linea);
            Console.Write("Ingrese segundo valor:");
            linea = Console.ReadLine();
            num2 = int.Parse(linea);
            if (num1 > num2)
            {
                int suma, diferencia;
                suma = num1 + num2;
                diferencia = num1 - num2;
                Console.Write("La suma de los dos valores es:");
                Console.WriteLine(suma);
                Console.Write("La diferencia de los dos valores es:");
                Console.WriteLine(diferencia);
            }
            else
            {
                int producto, division;
                producto = num1 * num2;
                division = num1 / num2;
                Console.Write("El producto de los dos valores es:");
                Console.WriteLine(producto);
                Console.Write("La división de los dos valores es:");
                Console.WriteLine(division);
            }
            Console.ReadKey();
        }
    }
}

Al ejecutar el código muestra el siguiente resultado 


Ejemplo 3

Se ingresan tres notas de un alumno, si el promedio es mayor o igual a siete mostrar un mensaje "Promocionado".

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EstructuraCondicionalSimple2
{
    class Program
    {
        static void Main(string[] args)
        {
            int nota1, nota2, nota3;
            string linea;
            Console.Write("Ingrese primer nota:");
            linea = Console.ReadLine();
            nota1 = int.Parse(linea);
            Console.Write("Ingrese segunda nota:");
            linea = Console.ReadLine();
            nota2 = int.Parse(linea);
            Console.Write("Ingrese tercer nota:");
            linea = Console.ReadLine();
            nota3 = int.Parse(linea);
            int promedio;
            promedio = (nota1 + nota2 + nota3) / 3;
            if (promedio >= 7)
            {
                Console.Write("Promocionado");
            }
            Console.ReadKey();
        }
    }
}

Al ejecutar el código muestra el siguiente resultado 


Ejemplo 4

Se ingresa por teclado un número positivo de uno o dos dígitos (1..99) mostrar un mensaje indicando si el número tiene uno o dos dígitos.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EstructuraCondicionalCompuesta3
{
    class Program
    {
        static void Main(string[] args)
        {
            int num;
            string linea;
            Console.Write("Ingrese un valor entero de 1 o 2 dígitos:");
            linea = Console.ReadLine();
            num = int.Parse(linea);
            if (num < 10)
            {
                Console.Write("Tiene un dígito");
            }
            else
            {
                Console.Write("Tiene dos dígitos");
            }
            Console.ReadKey();
        }
    }
}

Al ejecutar el código muestra el siguiente resultado 





6 comentarios:

  1. Programas If condición compuesta
    1.- Una compañía dedicada a la renta de autos cobra un monto fijo de $1000 para los primeros 300 km de recorrido. Para más de 300 km y hasta 1000 km, cobra un monto adicional de $2 por cada kilómetro en exceso sobre 300. Para más de 1000 km cobra un monto adicional de $5 por cada kilómetro en exceso sobre 1000. Diseñe un programa que determine el monto a pagar por el alquiler de un vehículo.

    ResponderEliminar
  2. Que quiere decir la variable "String linea;"?Agradezco si me lo pueden explicar.

    ResponderEliminar
  3. En programación, una cadena de caracteres, palabras, ristra de caracteres o frase (string, en inglés) es una secuencia ordenada (de longitud arbitraria, aunque finita) de elementos que pertenecen a un cierto lenguaje formal o alfabeto análogas a una fórmula o a una oración.

    ResponderEliminar
  4. Que significa o para que es relevante
    "String linea"?

    ResponderEliminar
  5. En una escuela la colegiatura de los alumnos se determina según el número
    de materias que cursan. El costo de todas las materias es el mismo. Se ha
    establecido un programa para estimular a los alumnos, el cual consiste en lo
    siguiente: si el promedio obtenido por un alumno en el último periodo es
    mayor o igual que 9, se le hará un descuento del 30% sobre la colegiatura y no
    se le cobrara IGV; si el promedio obtenido es menor que 9 deberá pagar la
    colegiatura completa, la cual incluye el 10% de IGV. Obtener cuanto debe
    pagar un alumno.

    ResponderEliminar