Dokonałem 2 zmiennych o nazwie Nazwa użytkownika i hasło oraz chcę przetestować, czy są prawdziwe, ale monit nie wydaje się wysadzać. Nie rozumiem, jestem też całkiem nowy do kodu i naprawdę chcę dowiedzieć się, jak to zrobić

var 1 = false;
var 2 - false;

function login() {

var username = prompt("Username");
var password = prompt("Password");

if (username == "wouterXD") {
    1 = true;
} else {
    1 = false;
}

if (password == "Wout2003!") {
    2 = true;
} else {
    2 = false;
}
};
    if (1 = false && 2 = false) {
        alert("Wrong Password and Username!");
        login();
    }
-6
The Commandblockfreaks 24 czerwiec 2017, 15:12

3 odpowiedzi

Najlepsza odpowiedź

Jest tak bardzo nie tak z twoim kodem, to powinno działać.

To, co się masz źle:

  • Nie można ustawić zmiennych za pomocą operatora -
  • Nie można porównać w if - Oświadczenie za pomocą pojedynczego =
  • Nie można wymienić zmiennych z numerami.
var unc = false; // username correct
var pwc = false; // password correct

while (!login());

function login() {

    var username = prompt("Username");
    var password = prompt("Password");

    if (username == "wouterXD") {
        unc = true;
    } else {
        unc = false;
    }

    if (password == "Wout2003!") {
        pwc = true;
    } else {
        pwc = false;
    }

    if (unc && pwc){
        return true;
    } else {
        return false;
    }
};
1
Luca Kiebel 24 czerwiec 2017, 14:13

Tak wiele rzeczy jest nie tak z tym kodem ...

Przede wszystkim nigdy nie nazywaj swoich zmiennych jako liczb całkowitych ... więc zmień nazwę ich do czegoś więcej ... Nadaje się.

Po drugie, twój VAR 2 jest błędny. Masz znak odejmowania, a nie równy. Przynajmniej jednak nie trwa, twój logiczny operator jest również błędny.

Single Equal Sign jest przypisywanie wartości, w instrukcji Jeśli należy sprawdzić, czy są takie same, więc potrzebny jest podwójny znak

if(firstVariable == false && secondVariable == false){

}

Nie będziesz osiągnąć funkcjonalności, którą chcesz i tak po poprawianiu tych błędów. Ostatni operator (ten, który wysłałem powyżej) jest poza korpusem funkcyjnym, tj. Nie zostanie wykonane, gdy funkcja zostanie uruchomiona.

var firstVariable = false;
var secondVariable = false;

function login() {

   var username = prompt("Username");
   var password = prompt("Password");

   if (username == "wouterXD") {
       firstVariable = true;
   } else {
       firstVariable = false;
   }

   if (password == "Wout2003!") {
       secondVariable = true;
   } else {
       secondVariable = false;
   }

   if (firstVariable = false && secondVariable = false) {
        alert("Wrong Password and Username!");
        login();
   }
};
0
Adrian 24 czerwiec 2017, 12:26
var 1 = false;

Oznacza, że zmienna nazywa 1 otrzyma wartość false. Ale to jest nieprawidłowe składniowe. Jest nieprawidłowy do nazwania zmiennych z nazwami całkowitymi. Jesteś także zdezorientowany o znaczeniu =, który jest operatorem przypisywania. Zobaczmy uproszczone rozwiązanie:

var uCorrect = false;
var pCorrect = false;

function login() {
    uCorrect = (prompt("Username") == "wouterXD");
    pCorrect = (prompt("Password") == "Wout2003");
    if ((!uCorrect) && (!pCorrect)) {
        alert("Wrong Password and Username!");
    }
    return uCorrect && pCorrect;
}

while (!login());

Lub niezwykle uproszczone rozwiązanie, jeśli nie musisz przechowywać tych danych:

function login() {
    return (prompt("Username") == "wouterXD") && prompt("Password") == "Wout2003";
}

while (!login());
1
Lajos Arpad 24 czerwiec 2017, 14:00