Introducción a C#
Por Nacho Cabanes, versión 0.93 de 16-abr-2010

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: