Aprende a Programar Apps para iPhone con  Swift, SwiftUI y UIKit - lafactoriaapple

Operador Ternario en Swift

El uso del Operador Ternario simplifica el Código Fuente a la hora de programar Aplicaciones para iPhone cuando tenemos expresiones sencillas, en caso contrario es más aconsejable utilizar las instrucciones if/else

La sintaxis es la siguiente:

condición ? a : b

Si la condición es verdadera (true) entonces se ejecuta a, en caso contrario se ejecutará b.

Veamos un ejemplo práctico para entender su funcionamiento. Asignaremos un determinado valor a una variable llamada permisoConducir en función de la edad del posible conductor.

var edad : Int = 17

var permisoConducir : String = ""

permisoConducir = edad >= 18 ? "Ya puedes conducir un coche" : "Todavía no puedes conducir un coche"

print(permisoConducir)

Este problema lo hubiéramos resuelto con instrucciones if/else de la siguiente manera

var edad : Int = 17

var permisoConducir : String = ""

if edad >= 18 {
    permisoConducir = "Ya puedes conducir un coche"
}else{
    permisoConducir = "Todavía no puedes conducir un coche"
}

print(permisoConducir)

Veamos otro ejemplo. Supongamos que un profesor quiere subir 2 puntos a la nota del exámen si el alumno ha trabajado en clase, y en caso contrario no le subirá ninguna puntuación extra:

var nota : Int = 7

var trabajaEnClase : Bool = true

var notaFinal : Int = 0

notaFinal = nota + (trabajaEnClase ? 2 : 0)

print(notaFinal)

Es precisamente en situaciones con expesiones sencillas como las de este ejemplo donde es más ventajoso y elegante utilizar el Operador Ternario en lugar de las Instrucciones if/else

var nota : Int = 7

var trabajaEnClase : Bool = true

var notaFinal : Int = 0

var puntuacionExtra : Int = 0

if trabajaEnClase {
    puntuacionExtra = 2
}else{
    puntuacionExtra = 0
}

notaFinal = nota + puntuacionExtra

print(notaFinal)

Más en esta Sección

  • Instrucciones if anidadas

  • Instrucción else if

  • Operadores Lógicos

  • Operadores de Comparación

  • Instrucciones if/else en Swift