No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Switch con casos compuestos

28/33
Recursos

Aportes 10

Preguntas 0

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

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鈥

Ejemplo:
Un caso que se me ocurre para utilizar el switch, es un una alarma moderna, por ejemplo en caso que se active X sensor, capturar imagen con c谩mara Z
En caso que se active Y sensor, disparar sirena鈥

YO LO PENSARIA PARA CONFIRMAR ALGUNA PREGUNTA DE SEGURIDAD DE UNA APP.

este es un switch para detectar con las coordenadas en que ciudad va aterrizando un avi贸n

let airportRunway = (4.6769842,-74.150043)


switch airportRunway {
    case (4.6769842,-74.150043):
        print("welcome to bogota")
    
    case (19.436076,-99.076393):
        print("welcome to cdmx")
    
    case(28.4820199,81.3881967):
        print("welcome to orlando")
    
    case(-33.4727092,-70.7699162):
        print("welcome to chile")
    default:
        break
}

Podemos utilizar lowercased() para tomar la opci贸n como minuscula

let anotherCharacter: Character = "E"

switch anotherCharacter.lowercased() {
case "a", "e", "i", "o", "u":
    print("Se trata de una vocal")
case "b","c","d","f","g","h","j","k","l","m","n","帽","p","q","r","s","t","v","w","x","y","z":
    print("Se trata de una consonante")
default:
    print("Se trata de otro caracter que no es vocal ni consonante")
}
//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.*/