ÓA

Hola comunidad, tengo una duda. Por que imprime ambas opciones??? Your car has turned on Your car keys are missing

Debería imprimir solo la primera opción no?

Saludos y gracias por su tiempo.

5respuestas
ÓA

Habia olvidado publicar la tercera imagen

Avatar

Buenos días, Oscar Armenta:

Siguiendo solo la lógica de programación (desconozco de Swift) y por lo que puedo entender en tu código, dentro de la función turnOn tienes una estructura if seguida de otra if - else, por lo que ambas condiciones van a evaluarse durante la ejecución de tu programa y te mostrarán los resultados que nos comentas.

Siendo específico, al llamar primero a la función turnOn al final de tu código (imagen 3) ocurre lo siguiente:

  • Cuando se evalúa if (key) && (speedStatus != 5) esto devuelve un valor true ya que pasaste como parámetro un valor true en la función turnOn y además la variable speedStatus = 0 declarada al inicio de tu clase tiene un valor distinto de 5 (es cero). El resultado entonces será "Your car has turned on".
  • Luego de lo anterior, se evalúa también la segunda condición if self.speedStatus == 5 y como la variable speedStatus sigue con valor de cero, se imprime entonces lo que está en el bloque else: "Your car keys are missing".

Espero haberme explicado, saludos ✌ .

Avatar

Cuando usamos el elemento Switch después de declarar cada Case debemos cerrarlo con Break; Ejemplo switch (condition) case 1: document.write ("hola") break; case 2: document.write ("hola mundo") break; Si no lo haces Así el programa ejecutara todas las sentencias y se detendrá cuando ya no haya ninguna para evaluar como te lo está haciendo.

ÓA

Lo arregle asi haha, ya funciona. Por cierto alguien sabe respecto a los computed properties e inicializadores? es lo mismo no? Que opinan? Saludos y gracias por sus respuestas.

lenguaje

//My first class.

//stored properties.

class myCar { var color = "red" var passengersNo = 5 var brand = "Ford" var gasolineCapacity:Double = 45

//computed properties

var gasolineCapacityGallons:Double {
    get {
        return gasolineCapacity / 3.78541
    }
    set {
        self.gasolineCapacity = newValue * 3.78541
    }
}

//Local properties due to a better writing of the code.

var onStatus = "turnedOff"
var speedStatus = 0
var carStatus = "car"

//methods.

func turnOn(key:Bool) {
    if (key) && (self.carStatus == "car") {
        print("Your car has turned on")
        self.onStatus = "turnedOn"
    }; if (key) && (self.carStatus == "no car") {
        print("Yes you have your keys but not your car. Time to buy a new one. May I recommend a Beautiful Jeep?")
    }; if(key == false){
        print("Your car keys must be missing")
    }
    
}

func move() {
    if (self.onStatus == "turnedOn") && (self.speedStatus != 5){
        self.gasolineCapacity = self.gasolineCapacity - 1
        self.speedStatus = self.speedStatus + 1
        print(self.gasolineCapacity, self.gasolineCapacityGallons)
        
        switch self.speedStatus {
        case 1:
            print("I want to go faster")
        case 2:
            print("I am going even faster")
        case 3:
            print("I am the fastest car in the whole world!")
        case 4:
            print("Wait no! We gotta slow down!")
        case 5:
            print("You have a car no more... Genius")
            self.carStatus = "no car"
        default:
            print("Time to buy a new car")
            self.carStatus = "no car"
        }
    } else if (self.onStatus == "turnedOff") && (self.carStatus == "car"){
        print("Room room! You're moving with a turned off car. You must be a magician")
    }

} }

var myCarResume = myCar() myCarResume.turnOn(key: true) myCarResume.move() myCarResume.move() myCarResume.move() myCarResume.move() myCarResume.move() myCarResume.turnOn(key: true) myCarResume.move() myCarResume.gasolineCapacity = 60 print("Your new number of gallons is : (myCarResume.gasolineCapacityGallons)")

Avatar

Un consejo: ayuda por favor puede significar que te estás ahogando, tu casa se está incendiando, te están asataltando o tu vida corre peligro. Por favor escribe títulos que describan el tema de tu publicación. Es muy dificil ayudar con este tipo de títulos.

Necesitas iniciar sesión para responder.
¿En qué estamos trabajando?
Laravel Desde Cero (2019)

Laravel Desde Cero (2019)

Con Laravel puedes crear aplicaciones web poderosas con un código PHP simplificado y elegante.