En C#, al igual que en la mayoría de lenguajes que derivan de C, hay otra forma de asignar un valor según se cumpla una condición o no, más compacta pero también más difícil de leer. Es el "operador condicional" ? : (también conocido como "operador ternario"), que se usa
nombreVariable = condicion ? valor1 : valor2;
y equivale a decir "si se cumple la condición, toma el valor valor1; si no, toma el valor valor2". Un ejemplo de cómo podríamos usarlo sería para calcular el mayor de dos números:
numeroMayor = a>b ? a : b;
esto equivale a la siguiente orden "if":
if ( a > b )
numeroMayor = a;
else
numeroMayor = b;
Al igual que en este ejemplo, podremos usar el operador condicional cuando queramos optar entre dos valores posibles para una variable, dependiendo de si se cumple o no una condición.
Aplicado a un programa sencillo, podría ser
// Ejemplo_02_01_08a.cs
// El operador condicional
// Introducción a C#, por Nacho Cabanes
using System;
public class Ejemplo_02_01_08a
{
public static void Main()
{
int a, b, mayor;
Console.Write("Escriba un número: ");
a = Convert.ToInt32(Console.ReadLine());
Console.Write("Escriba otro: ");
b = Convert.ToInt32(Console.ReadLine());
mayor = a>b ? a : b;
Console.WriteLine("El mayor de los números es {0}.", mayor);
}
}
Un segundo ejemplo, que sume o reste dos números según la opción que se escoja, sería:
// Ejemplo_02_01_08b.cs
// El operador condicional (2)
// Introducción a C#, por Nacho Cabanes
using System;
public class Ejemplo_02_01_08b
{
public static void Main()
{
int a, b, operacion, resultado;
Console.Write("Escriba un número: ");
a = Convert.ToInt32(Console.ReadLine());
Console.Write("Escriba otro: ");
b = Convert.ToInt32(Console.ReadLine());
Console.Write("Escriba una operación (1 = resta; otro = suma): ");
operacion = Convert.ToInt32(Console.ReadLine());
resultado = operacion == 1 ? a-b : a+b;
Console.WriteLine("El resultado es {0}.", resultado);
}
}
Ejercicios propuestos:
Ejercicio propuesto 2.1.8.1: Crea un programa que use el operador condicional para mostrar un el valor absoluto de un número de la siguiente forma: si el número es positivo, se mostrará tal cual; si es negativo, se mostrará cambiado de signo.
Ejercicio propuesto 2.1.8.2: Usa el operador condicional para calcular el menor de dos números.