En primer lugar, si una afirmación siempre es cierto, pero no es segundo

Yoshi24517:

Humildemente pido disculpas si esto se ha hecho antes.

Aquí hay un código que tengo.

    int id1 = 1234;
    int id2 = 5678;
    int idPass1 = 123;
    int idPass2 = 456;

    System.out.println("Welcome. Please enter your Employee ID.");
    while(true) {
        int id = input.nextInt();
        //add more if needed
        if(id != id1 || id != id2){
            System.out.println("Employee does not exist. Please try again.");
        } else {
            break;
        }
    }
    System.out.println("Please enter your password.");
    while(true){
        int idPass = input.nextInt();
        //add more if needed
        if(idPass != idPass1 || idPass != idPass2){
            System.out.println("Incorrect Password entered. Please try again.");
        } else {
            break;
        }
    }

Como puedes ver. las 2 declaraciones if / else son exactamente los mismos, a excepción de las variables. La primera declaración con los ID, en IntelliJ, dice que siempre es cierto. La segunda declaración, con las contraseñas, no me da esa advertencia.

¿Cómo puede la primera if / else siempre es cierto si la segunda sentencia if / else es exactamente la misma (menos las variables) y no siempre es cierto?

(Escáner fue declarado con anterioridad a este código.)

línea:

Debido a que su id1y id2no son iguales, la expresión (id != id1 || id != id2)debe ser siempre evaluada como verdadera. Es posible que desee utilizar &&para reemplazar ||. Y luego su código cae en el primer bucle, lo que lleva a la segunda expresión no se evalúa, por lo que ninguna advertencia.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=197214&siteId=1
Recomendado
Clasificación