A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Switch con casos compuestos

28/33
Recursos

Aportes 6

Preguntas 0

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Este switch evaluations las condiciones de entrega de un pedido para determinar si se entrego a tiempo y cercano al lugar del punto GPS registrado.

let deliveryState: (String, String, Int) = (Estado: "Entregado", Horario: "A tiempo", Distancia: 49 )
let status: String

// Reto
switch deliveryState {
case ("Entregado", "A tiempo", 0..<50):
    status = "El pedido a sido entregado a tiempo y cerca al punto GPS registrado"
case ("Entregado", "Retrasado", 0..<50):
    status = "El pedido a sido entregado con retraso y cerca al punto GPS registrado"
case ("Pendiente",_, _):
    status = "El pedido todavia no a sido entregado"
case ("Entregado", "A tiempo", 50...100):
    status = "El pedido a sido entregado a tiempo, lejano al punto GPS registrado"
case ("Entregado", "Retrasado", 50...100):
    status = "El pedido a sido entregado con retraso, lejano al punto GPS registrado"
default:
    status = "Por favor ponerse en contacto con nuestros operadores"
}

print(status)


Indirectamente el profesor durante todo el curso nos ha entrenado para nombrar variables 馃懆馃徏鈥嶐煉

un switch evaluando una tupla donde el primer elemento es la calificacion del alumno, y el segundo es si el alumno pago la colegiatura

let studentStatus: (UInt8,Bool) = (100,true)

switch studentStatus {
case (0..<70, _):
    print("alumno reprobado")
case (_, false):
    print("alumno dado de baja por falta de pago")
case (70..<80, true):
    print("alumno con matricula pagada y calificacion aprobatoria: \(studentStatus.0) con descuento de 10% por calificacion")
case (80..<90, true):
    print("alumno con matricula pagada y calificacion aprobatoria: \(studentStatus.0) con descuento de 20% por calificacion")
case (90..<100, true):
    print("alumno con matricula pagada y calificacion aprobatoria: \(studentStatus.0) con descuento de 30% por calificacion")
case (100, true):
    print("alumno con matricula pagada y calificacion aprobatoria: \(studentStatus.0) con descuento de 40% por calificacion y menci贸n honorifica")
default:
    print("Error al capturar la calificacion")
}

Si estuviera haciendo una aplicaci贸n y necesitara saber el estado en que se encuentra una solicitud de seguimiento, activa, pendiente o rechazada, como en el caso de instagram. Cada case seria un estado de la solicitud.

Un ejemplo tonto que se me acaba de ocurrir para un uso al Switch, puede servir para saber si tu comida ya esta lista para ser recogida, si cuentas con dinero suficiente para transferir a otra persona, si cuentas tu factura del tel茅fono activa o no, si tienes la edad suficiente para registrarte o usar un servicio, etc鈥

//TODO: Switch ejemplo para proyectos futuros
let flightStatus = (departureCity: "Paris", destinationCity: "Madrid", status: "con retraso")
let message: String

switch flightStatus
{
case ("Paris", "", _):
    message = "Por favor escoja una ciudad de destino."
case("Paris", let city, ""):
    message = "No hay informaci贸n del estado de vuelo a la ciudad de \(city). El aeropuerto de Par铆s le ofrece disculpas por las molestias. Intente m谩s tarde por favor."
case ("Paris", let city, let status):
    message = "Su vuelo a la ciudad \(city) est谩 \(status)"
case (let departureCity, _, _):
    message = "Ud. est谩 en el aeropuerto de \(departureCity). No hay informaci贸n disponible en el momento"
}

print(message)
/*OUTPUT: Su vuelo a la ciudad Madrid est谩 con retraso.*/