Condicional IF En C# [Parte 1]

Las condicionales son partes importantes de nuestro programa, gracias a ellos podemos hacer programas inteligentes, complejos y útiles. En esta clase vamos a aprender los conceptos básicos de una condicional y como usarlos dentro de nuestros programas.


¿Qué es una condición? En nuestras vidas siempre tomamos decisiones, desde que despertamos hasta que nos volvemos a dormir por las noches. Nos preguntamos que ropa nos vamos a poner, que vamos a desayunar, que transporte vamos a elegir para llegar al trabajo y un montón de cosas más. Todas esas decisiones nos llevan por muchos caminos diferentes, y por lo tanto, nos traen consecuencias distintas de las otras opciones que podríamos haber elegido. Si tomo el bus de la ruta C, ¿llegaré temprano al trabajo? Probablemente. Si uso traje para la entrevista de trabajo, ¿me aceptarán? No lo sabemos. Lo que si sabemos, es que siempre tomamos una decisión en base a una condición, ¿qué pasa si hago esto? ¿Qué pasa si hago lo otro? Y por cada opción que tengamos para decidir, vamos a encontrar una consecuencia distinta.

En programación es igual, nosotros podemos programar muchos caminos y en base a la decisión que se tome, realizaremos algo que se traduce como una consecuencia. Por ejemplo, si tenemos una página web que es solo para mayores de 18 años, vamos a tener que preguntar si la persona que está ingresando es mayor de edad. Si es mayor, le dejaremos ingresar a la página web, si es menor, le mostraremos un mensaje de advertencia y no lo dejaremos ingresar a la web.

Para programar esas condiciones se usa la condicional IF, a la cual le vamos a programar una condición y si esa condición es verdadera, el programa ejecutará cierto fragmento de código. Opcionalmente podemos programar un «ELSE», el cual se ejecutará cuando la condición sea falsa.

Traduciéndolo a una oración, vamos a tener algo de este estilo: Si (IF) se cumple esta condición, ejecutaremos este fragmento de código, sino (ELSE), ejecutaremos este otro fragmento de código.

Vamos a ver como es la sintaxis en C#

            if (true)
            {
                // Hacemos algo
            }
            else
            {
                // Hacemos otra cosa
            }

En la siguiente tabla, vamos a ver que tipo de evaluación podemos realizar dentro de C# para las condicionales.

Tipo de EvaluaciónSigno
Para evaluar si es igual==
Para evaluar si es diferente!=
Para evaluar si es mayor>
Para evaluar si es mayor o igual>=
Para evaluar si es menor<
Para evaluar si es menor o igual<=

Para comprender mejor, vamos a resolver algunos ejercicios.

Ejercicio 1. Cree un programa que permita saber, en base a la nota final del curso de un alumno, si ha aprobado o ha desaprobado. Si la nota es mayor que 5, el alumno ha aprobado, en caso contrario, ha desaprobado.

using System;

namespace CondicionaIF1
{
    class Program
    {
        static void Main(string[] args)
        {
            // Declaramos nuestras variables.
            double prom;
            const double limit = 5.0;

            // Solicitamos al usuario que ingrese el promedio
            Console.Write("Ingrese el promedio final del curso: ");
            prom = double.Parse(Console.ReadLine());

            // Evaluamos si el prom es mayor que 5
            if (prom > limit)
            {
               // Entonces debemos mostrar el mensaje de que el alumno ha aprobado.
               Console.WriteLine("El alumno ha aprobado.");
            }
            else
            {
                // En caso contrario, mostramos que el alumno ha desaprobado.
                Console.WriteLine("El alumno ha desaprobado.");
            }
        }
    }
}

Ejecutamos nuestro código y validamos si funciona correctamente.

Ejercicio 2. Cree un programa que valide si el número ingresado es par o impar.

using System;

namespace CondicionalIF2
{
    class Program
    {
        static void Main(string[] args)
        {
            // Declaramos nuestras variables
            int number;
            const int numberTwo = 2;

            // Solicitamos al usuario que ingrese un número.
            Console.Write("Ingrese un número: ");
            number = int.Parse(Console.ReadLine());

            // Evaluamos el residuo, si es es 0, el número es par.
            if (number % numberTwo == 0)
            {
                Console.WriteLine("El número ingresado es par.");
            }
            else
            {
                // Sino, es impar.
                Console.WriteLine("El número ingresado es impar.");
            }
        }
    }
}

Ejecutamos…

Espero que se haya entendido el concepto y lo fácil que es implementarlo, vamos con ejercicio un poco más difícil.

Ejercicio 3. Cree un programa que valide la edad actual del usuario. Considerar días y meses, y si, en el momento de la evaluación cumple años, imprimir un mensaje con la felicitación.

using System;

namespace CondicionalIF3
{
    class Program
    {
        static void Main(string[] args)
        {
            // Declaramos nuestras variables.
            DateTime birthday;
            DateTime currenDate = DateTime.Now;
            int years;

            // Solicitamos la fecha de nacimiento al usuario.
            Console.Write("Ingrese su fecha de nacimiento en formato dd/mm/yyyy: ");
            // Evaluamos que el usuario haya registrado la fecha en formato correcto.
            if (DateTime.TryParse(Console.ReadLine(), out birthday))
            {
                // Recuerda que la función TryParse retorna un valor booleano verdadera, si la conversión (de texto a fecha) se realiza de manera correcta.
                Console.WriteLine("Fecha correcta.");
            }
            else
            {
                // En esta parte podríamos poner un mensaje de que la fecha es incorrecta, o terminar el programa, pero, por el momento, lo obviaremos.
            }
            

            // Para saber la edad actual de una persona, debemos restar el año de nacimiento con el año actual.
            years = currenDate.Year - birthday.Year;

            // Sin embargo, debemos tener en cuenta los meses, porque es probable que aún no haya cumplido el último año.
            // Vamos a evaluar si el mes de nacimiento es mayor o igual que el mes actual.
            if(birthday.Month >= currenDate.Month)
            {
                // En caso la condición sea verdadera, debemos restarle un año a la edad, ya que aún no cumple el último año.
                years--;
                // Con los dos menos (--) le quitamos una unidad a un número.

                // Ahora debemos evaluar si el mes de nacimiento es igual al mes actual.
                // Si la condición es verdadera, entonces debemos evaluar los días.
                if (birthday.Month == currenDate.Month)
                {
                    // Ahora tenemos que evaluar los días.

                    // Si el día de nacimiento, es menor o igual al día actual, entonces ya cumplió años.
                    if (birthday.Day <= currenDate.Day)
                    {
                        // Si la condición es verdadera, debemos devolverle una unidad a los años.
                        years++;
                        // Con los dos más (++) le agregamos una unidad a un número.

                        // Nos falta saber si el día actual es su cumpleaños.
                        if (birthday.Day == currenDate.Day)
                        {
                            Console.Write("¡Feliz cumpleaños! ");
                        }
                    }
                }
            }

            // Al final, imprimimos la edad del usuario.
            Console.WriteLine("Tu edad actual es: " + years.ToString());
        }
    }
}

Ejecutamos y validamos todas las condiciones que hemos programado, ¡por que son varias! Y sí, es posible poner una condición dentro de otra condición.

Si te sale igual que a mí, ¡felicidades! Ahora te dejaré algunos ejercicios para que puedas practicar.

Ejercicio 4. Cree un programa que solicite al usuario el lado de un cuadrado. Luego le debe pedir una opción al usuario, si elige 1, le debe mostrar el perímetro del cuadrado, si elige 2, le debe mostrar el área del cuadrado.

Ejercicio 5. Cree un programa que solicite la siguiente información: Nombre, sexo, cantidad de hijos y monto total de compra. En base a esa información, se debe realizar lo siguiente. Si el cliente es hombre y no tiene hijos, le debes aplicar un descuento de 2.5% al monto total de compra. Si tiene 1 a más hijos, debes aplicarle un descuento de 5% al monto de compra. Si es mujer y no tiene hijo, debe aplicarle 10% de descuento, si tiene 1 o 2, debes aplicar 15% de descuento y si tiene 3 a más hijos, debes aplicar el 20% de descuento a la compra. El programa debe imprimir «Señor», «Señorita» o «Señora» respectivamente y su nombre. La mujer es señorita si no tiene hijos. Además debe imprimir el subtotal, el descuento y el monto final de compra.

Ejercicio 6. Cree un programa que pida 3 números. Luego debe imprimir cual número es el mayor, el menor y el del medio.


Espero que el contenido de esta clase te haya servido de mucho, y si aún tienes dudas, o algo no está claro, déjanos tu comentario para tenerlo en cuenta y explayarnos un poco más (o corregir) en caso sea necesario.

Nos sería de mucha ayuda que compartas el contenido si te ha gustado y te invitamos a seguirnos en nuestras redes sociales de Clase13, estamos en Facebook, Instagram y Twitter como @Clase13lat, de esa manera te enterarás de las últimas novedades de manera rápida. También te invito a seguirme en Instagram como @rodolfopenia donde estaré subiendo contenido adicional para complementar la clase.