修改了好久,现在不管怎么输,应该都没有漏洞了吧?

来源:3-5 编程练习

Sherlock_bourne

2019-04-13 12:43:56

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>break和continue</title>
</head>
<body>
    <script>
    var pwd,pwdAgain;
    //补充代码
    pwd=prompt("请输入密码");
        while(pwd==123456){
         
            pwdAgain=prompt("密码正确,请再次输入密码");
            if(pwdAgain==123456){
                alert("密码正确,正在登陆");
                break;
            }else{
             alert("密码不正确,请重新输入")
                pwd=prompt("请输入密码");
            }
        }
        
        while(pwd!=123456){
         alert("密码不正确,请重新输入")
            pwd=prompt("请输入密码");
            if(pwd==123456){
                pwdAgain=prompt("请再次输入密码");
                if(pwdAgain==123456){
                    alert("密码正确,正在登陆");
                    break;
                }else{
                    pwd=prompt("请输入密码");
                }
            }else{
             alert("密码不正确,请重新输入")
             pwd=prompt("请输入密码");
             if(pwd==123456){
                 pwdAgain=prompt("请再次输入密码");
                 if(pwdAgain==123456){
                     alert("密码正确,正在登陆");
                     break;
                 }else{
                     pwd=prompt("请输入密码");
                 }
             }
            }
        }
        
        
</script>
</body>
</html>


写回答

2回答

Miss路

2019-04-13

同学,你好。你的代码写的太复杂了,按照你的写法的话,可能最终能实现的比较严谨,但是思路不清晰,不好维护,也非常消耗内存,自己也容易找不出问题。其实挺简单的,两个while循环就ok了, 给你一个参考的吧:

<script type="text/javascript">
    var pwd, pwdAgain;
    //补充代码
    while (pwd != 123456) {
        pwd = prompt("请输入密码");
    }
    while (pwd == 123456) {
        pwdAgain = prompt("请再次输入密码");
        if (pwdAgain == pwd) {
            alert("两次输入的密码匹配");
            break;
        }

    }
    </script>

不过你这样探索去实现是要表扬你一下的,相信你在实现的过程中也遇到了很多问题,解决了很多问题,收货了很多。

如果帮助到了你,欢迎采纳!

祝学习愉快!

0

Sherlock_bourne

提问者

2019-04-13

当第一次错,第二次对,第三次又错,第四次对,为什么这时候就不提醒“您的密码输入正确,正在登陆”了?如何解决?

0

0 学习 · 40143 问题

查看课程