【问题标题】:Javascript: Alert message after loop endsJavascript:循环结束后的警报消息
【发布时间】:2019-04-28 15:56:13
【问题描述】:

这是一个简单的学校登录练习。它旨在让您尝试登录 3 次。我想在循环停止后(使用了 3 次尝试),提醒用户他没有剩余尝试,他的帐户将被阻止。

类似:

alert("You don't have any attempts left. Your account is now blocked);

这是我制作的循环:

var tries;

for (tries = 2; tries !== -1; tries--) {
    let User = prompt("Enter your username:");
    let Pass = prompt("Enter your password:");
        if (User === "hello" && Pass === "world") {
            alert("Welcome.");
            break;
        } else {
            alert("Incorrect username and/or password. You have " + tries + " attempt(s) left.");
        }
}

提前致谢。

【问题讨论】:

标签: javascript for-loop


【解决方案1】:

你离得很近。我想这就是你想要的。

var tries;

for (tries = 2; tries >= 0; tries--) {
    let User = prompt("Enter your username:");
    let Pass = prompt("Enter your password:");
        if (User === "hello" && Pass === "world") {
            alert("Welcome.");
            break;
        } else if (tries == 0) {
            alert("You don't have any attempts left. Your account is now blocked");
        }  else {
            alert("Incorrect username and/or password. You have " + tries + " attempt(s) left.");
        }
}

【讨论】:

  • 谢谢!这正是我所需要的。
【解决方案2】:

您可以递归地实现这一点。每次输入错误的用户名或密码时,只需减少尝试次数即可。

var TRIES = 3;

function ask() {
  let User = prompt("Enter your username:");
  let Pass = prompt("Enter your password:");

  if (User === "hello" && Pass === "world") {
    return alert("Welcome.");
  }

  if (TRIES > 0) {
    alert("Incorrect username and/or password. You have " + TRIES + " attempt(s) left.");
    TRIES -= 1;
    ask()
  } else {
    alert("You don't have any attempts left. Your account is now blocked");
  }
}

ask()

【讨论】:

    【解决方案3】:
    var tries;
    
    for (tries = 0; tries < 3; tries++) {
        let User = prompt("Enter your username:");
        let Pass = prompt("Enter your password:");
            if (User === "hello" && Pass === "world") {
                alert("Welcome.");
                break;
            } else {
                alert("Incorrect username and/or password. You have " + tries + " attempt(s) left.");
            }
            if(tries == 2)
            {
                alert("You don't have any attempts left. Your account is now blocked);
            }
    }
    

    【讨论】:

      【解决方案4】:

      也许您可以通过以下方式实现:

      for (var attemptsRemaining = 3; attemptsRemaining > 0; attemptsRemaining--) {
        
          let User = prompt("Enter your username:");
          let Pass = prompt("Enter your password:");
        
          if (User === "hello" && Pass === "world") {        
            alert("Welcome.");
            break;
          
          } else if(attemptsRemaining <= 1) {          
            alert("To many failed attempts. Your account is now blocked.");
          }
          else {    
            alert("Incorrect username and/or password. You have " + (attemptsRemaining - 1) + " attempt(s) left."); 
          }
        }
      }

      这里的想法是添加额外的检查以查看attemptsRemaining 的数量是否已达到一个(或更少,为了稳健性),此时所有尝试都已过期。在这种情况下,您会显示一个弹出窗口,通知用户他们的帐户现在已被阻止。

      希望有帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-07-24
        • 2014-02-21
        • 1970-01-01
        • 2014-05-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多