2015-11-04 1 views
1

Я делаю простой банкомат для класса, и мне нужно сделать функцию входа в систему, которая блокирует вас после 3 попыток, и теперь кажется, что она застревает, прося вашего пользователя и пройдите, пока вы не запустите из попыток. В случае успеха он должен вызвать мою функцию меню и добавить немного текста в стек, я использую в качестве журнала операций, которые вы делаете при входе в систему.Вход в систему Функция застряла в цикле

function login(pin_daniel,pin_stephanie,pin_cano,log){ 
 
    var ingreso = false; 
 
    var intentos = 1; 
 
    while (intentos != 3 && ingreso == false){ 
 
     var usuario = prompt("Bienvenido a CanoBank, su banco de `confianza`, por favor ingrese su usuario y pin\n"+ 
 
      "Usuario:"); 
 
     var pin_login = prompt("PIN:"); 
 
     if (usuario == 'daniel' && pin_login == pin_daniel){ 
 
      ingreso = true; 
 
      menu(daniel_dinero_ahorro,daniel_dinero_monetaria); 
 
      log.push(usuario + "entro al sistema" + Date.now()) 
 
     } 
 
     else if (usuario == 'stephanie' && pin_login == pin_stephanie){ 
 
      ingreso = true; 
 
      menu(stephanie_dinero_ahorro,stephanie_dinero_monetaria); 
 
      log.push(usuario + "entro al sistema" + Date.now()) 
 
     } 
 
     else if (usuario == 'cano' && pin_login == pin_cano){ 
 
      ingreso = true; 
 
      menu(cano_dinero_ahorro,cano_dinero_monetaria); 
 
      log.push(usuario + "entro al sistema" + Date.now()) 
 
     } 
 
     else{ 
 
      console.log("Usuario o PIN incorrecto, tiene" + (3 - intentos) + "oportunidades"); 
 
      intentos = intentos + 1; 
 
     } 
 
    } 
 

 
} 
 
login();

+0

Попробуйте разделить ваши условия (usuario == user && pin_login == pin_user) на отдельные проверки, чтобы попытаться найти проблему. Поскольку мы не знаем значения для pin_logins и не знаем, как работает функция «prompt», мы не можем много помочь. – vincent

+0

подсказка такая же, как и вход на других языках, и контакты всего лишь 1234 на данный момент, я попытался сделать это как реальный логин, где вы должны соответствовать как для него, так и для вас, –

+0

В вашей функции login() вы надеваете Кажется, что они передают пароли? – vincent

ответ

0

Попробуйте изменить:

login(); 

к:

login('1234','1234','1234', log); 

Вам необходимо пройти в переменных содержащие фактические контакты, поэтому допустимы сравнения с введенным пользователем пользователем.

Конечно, это не так, как это должно быть сделано на практике. Это просто пример, иллюстрирующий использование функций.

0

Я не понять ваш вопрос.

Но если у вас возникли вопросы: «Почему мой журнал не содержит трассировку ведения журнала, когда он завершен до выхода из меню?»

Ответ будет следующим: «потому что Javascript является последовательным, и если при успешном входе в систему функция меню вызывается перед добавлением в журнал. Si вам нужно дождаться возврата функции меню, чтобы добавить линия в журнал, попробуйте сделать наоборот, и это будет нормально»

+0

Спасибо за последовательный бит, не помню, мой вопрос: у меня есть логин, который должен выйти, если вы ошибетесь 3 раза, но теперь он застрял в цикле, где он попросит вас войти в систему и даже если вы правы, он будет продолжать просить, пока вы не нажмете этот предел и не выбьете вас. –