Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

[Duda] Duda con el código de puedes conducir o no puedes conducir

Hola compañeros, estaba realizando este código el cual dice si puedes conducir o no, y me quedó de la siguiente forma pero con un detalle:

Si me da el resultado que deseo, pero sólo si el usuario ingresa la letra "s" en minúscula, el problema surge cuando el usuario ingresa la letra "S" en mayúscula, el código lanza que no se puede conducir, a lo que pensé una posible solución:

if (edad >= 18 && tieneLicencia == ("S"||"s")) {

    imprimir(" Puedes conducir");

} else {

    imprimir("No puedes conducir");

}

en la condición de if coloqué que la variable "tieneLincencia" debe ser igual a "s" minúscula o "S" mayúscula, pero sigue dandome la misma respuesta de "No puedes conducir" aunque el usuario haya ingresado que es mayor de edad y que si tiene licencia.

Les agradecería mucho si me apoyan con algún comentario. Saludos.

1 respuesta
solución!

¡Hola! Parece que estás teniendo un problema con la condición en tu código. La expresión ("S"||"s") en realidad no hace lo que esperas en este contexto. La sintaxis ("S"||"s") se evalúa como una expresión booleana, y siempre será verdadera porque una cadena no vacía se considera verdadera en una evaluación booleana en la mayoría de los lenguajes de programación. Por lo tanto, la condición en tu código se convierte en edad >= 18 && tieneLicencia == true, lo cual no es lo que quieres.

Para solucionar esto, puedes convertir la variable tieneLicencia a minúscula antes de compararla, para asegurarte de que estás comparando con "s" en minúscula, independientemente de si el usuario ingresó "S" o "s". Aquí hay un ejemplo de cómo podrías hacerlo en un lenguaje de programación típico como JavaScript:

if (edad >= 18 && (tieneLicencia.toLowerCase() === "s")) {
    imprimir("Puedes conducir");
} else {
    imprimir("No puedes conducir");
}

¡Hola! Parece que estás teniendo un problema con la condición en tu código. La expresión ("S"||"s") en realidad no hace lo que esperas en este contexto. La sintaxis ("S"||"s") se evalúa como una expresión booleana, y siempre será verdadera porque una cadena no vacía se considera verdadera en una evaluación booleana en la mayoría de los lenguajes de programación. Por lo tanto, la condición en tu código se convierte en edad >= 18 && tieneLicencia == true, lo cual no es lo que quieres.

Para solucionar esto, puedes convertir la variable tieneLicencia a minúscula antes de compararla, para asegurarte de que estás comparando con "s" en minúscula, independientemente de si el usuario ingresó "S" o "s". Aquí hay un ejemplo de cómo podrías hacerlo en un lenguaje de programación típico como JavaScript:

javascript Copy code if (edad >= 18 && (tieneLicencia.toLowerCase() === "s")) { imprimir("Puedes conducir"); } else { imprimir("No puedes conducir"); } En este ejemplo, la función toLowerCase() se utiliza para convertir la cadena en tieneLicencia a minúscula antes de compararla con la cadena "s". De esta manera, tanto "S" como "s" serán considerados como válidos para la condición, y obtendrás el resultado deseado.

Si este post te ayudó, por favor, marca como solucionado ✓.