Las expresiones booleanas no se comparan con true y false

Detalles

Resulta curioso comprobar como a menudo se introducen de manera totalmente prescindible comparaciones de expresiones booleanas con los valores lógicos de verdadero (true) y falso (false).

Por ejemplo, observa este código en C#

1
2
3
4
5
6
7
8
9
10
11
static void Main(string[] args)
{
    int a = Int32.Parse(Console.ReadLine());
    int b = Int32.Parse(Console.ReadLine());
    bool c = a > b;
    if (c == true)
        Console.WriteLine("El primero es mayor");
    else
        Console.WriteLine("El primero es menor o igual");
 
}

La variable "c" es un valor booleano, por lo tanto, vale 'true' o 'false'.

En la sentencia if es totalmente innecesario comparar c con true, ya que el resultado de la comparación es el valor que contenga c.

si c es true → true==true → true
si c es false → false==true → false

Es decir, mucho mejor de esta otra forma:

1
2
3
4
5
6
7
8
9
10
static void Main(string[] args)
{
    int a = Int32.Parse(Console.ReadLine());
    int b = Int32.Parse(Console.ReadLine());
    bool c = a > b;
    if (c)
        Console.WriteLine("El primero es mayor");
    else
        Console.WriteLine("El primero es menor o igual");
}

Si necesitaramos hacer la comparación en negativo, por ejemplo

1
2
3
4
5
6
7
8
9
10
static void Main(string[] args)
{
    int a = Int32.Parse(Console.ReadLine());
    int b = Int32.Parse(Console.ReadLine());
    bool c = a > b;
    if (c)
        Console.WriteLine("El primero es mayor");
    else
        Console.WriteLine("El primero es menor o igual");
}

Tampoco lo estaríamos haciendo de manera elegante. Mucho mejor esto:

1
2
3
4
5
6
7
8
9
10
static void Main(string[] args)
{
    int a = Int32.Parse(Console.ReadLine());
    int b = Int32.Parse(Console.ReadLine());
    bool c = a > b;
    if (c == false)
        Console.WriteLine("El primero es menor o igual");
    else
        Console.WriteLine("El primero es mayor");
}

   

Síguenos  

   

¿Dónde estoy?  

Estás en La tecla de ESCAPE, un sitio web personal en el que nos gusta hablar de algoritmos, metodología de la programación, personajes de informática, tecnología, ingeniería del software, internet, y cualquier otra tontería que se nos ocurra.

[Leer más / Términos de uso (ToS)]

   

¿Quién está en línea?