Hola Leydi, espero que estés bien
Parece que estás trabajando en un sistema de verificación de acceso y tienes un pequeño problema con las condiciones en tu código. Vamos a revisarlo juntos.
El problema principal está en la forma en que se evalúan las condiciones en la sentencia if
. Actualmente, tu condición:
if (codigo == codigoDeAcceso && nivel == 1 || nivel == 2 || nivel == 3)
se evalúa de manera que el operador ||
tiene menor precedencia que el operador &&
, lo que significa que se está evaluando como:
if ((codigo == codigoDeAcceso && nivel == 1) || nivel == 2 || nivel == 3)
Esto permite el acceso incluso si el codigo
es incorrecto, siempre que el nivel
sea 2 o 3. Para corregir esto, necesitas agrupar las condiciones del nivel de permiso usando paréntesis:
if (codigo == codigoDeAcceso && (nivel == 1 || nivel == 2 || nivel == 3))
Con este cambio, el acceso solo será permitido si el codigo
es correcto y el nivel
es uno de los valores válidos (1, 2 o 3).
Espero que esto solucione el problema. ¡Espero haber ayudado y buenos estudios!