3.1.9. Operador condicional: ?
En C# hay otra forma de asignar un valor según se dé una condición o no. Es el "operador condicional" ? : que se usa
nombreVariable = condicion ? valor1 : valor2;
y equivale a decir "si se cumple la condición, toma el valor v1; si no, toma el valor v2". Un ejemplo de cómo podríamos usarlo sería
numeroMayor = (a>b) ? a : b;
que, aplicado a un programa sencillo, podría ser
/*---------------------------*/ /* Ejemplo en C# nº 18: */ /* ejemplo18.cs */ /* */ /* El operador condicional */ /* */ /* Introduccion a C#, */ /* Nacho Cabanes */ /*---------------------------*/ using System; public class Ejemplo18 { 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); } }
(La orden Console.Write, empleada en el ejemplo anterior, escribe un texto sin avanzar a la línea siguiente, de modo que el próximo texto que escribamos –o introduzcamos- quedará a continuación de éste).
Un segundo ejemplo, que sume o reste dos números según la opción que se escoja, sería:
/*---------------------------*/ /* Ejemplo en C# nº 19: */ /* ejemplo19.cs */ /* */ /* Operador condicional - 2 */ /* */ /* Introduccion a C#, */ /* Nacho Cabanes */ /*---------------------------*/ using System; public class Ejemplo19 { 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}.\n", resultado); } }
Ejercicios propuestos:
- Crear 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.
- Crear un programa que use el operador condicional para dar a una variable llamada "iguales" (booleana) el valor "true" si los dos números que ha tecleado el usuario son iguales, o "false" si son distintos.
- Usar el operador condicional para calcular el mayor de dos números.