|
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# 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: 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 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");
}
Tampoco lo estaríamos haciendo de manera elegante. Mucho mejor esto: 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 menor o igual");
else
Console.WriteLine("El primero es mayor");
}
|