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!