请帮忙检查一下,谢谢!

请帮忙检查一下,谢谢!

var pwd,pwdAgain;
	    //补充代码
        var pwd,pwdAgain;
	    pwd=prompt("请输入密码:");
	    while (pwd!==123456){
	    	if (isNaN(pwd)) {
	    		alert("请输入数字:")
	    	} else if(pwd.length!=6){
	    		alert("请输入6位数!")
	    	} else if(pwd==123456){
	    		pwdAgain=prompt("正确,请再次输入密码");
	    		if (pwdAgain==123456) {
	    			alert("正确了!")
	    			break;
	    		}
	    	}
	    	pwd=prompt("请输入密码no");
	    }


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

童鞋,我测试了你的代码,运行虽然没有问题,但是不确定你原本的用意是什么?while循环条件(pwd !== 123456)只是判断输入的数值是否和123456相等,还是不论输入什么内容都要进入循环体。因为输入的内容类型为字符串,如果你是想判断当输入的内容和123456不相等时,需要parseInt()转换一下输入的内容,再判断,如下:http://img1.sycdn.imooc.com//climg/5a6018fd0001662107260456.jpg

如果是不论输入什么内容都要进入循环体,那就是正确的,因为!==判断的是数值和类型,ヾ(◍°∇°◍)ノ゙


  • 鹿屿 提问者 #1
    我要做的是,先进入浏览器弹出叫输入密码,如果输入的密码不是123456 (这里写错了,应该是!=),就进入循环并且开始判断是不是NaN如果是执行输入密码no。入过一进入浏览器的时候输入的密码正确就跳过前面两个判断直接(==123456)执行pwdAgain=prompt(“正确,再次输入密码”) (这里是不是应该也要加上parseInt?),再判断是不是正确的,如果正确执行,然后立即退出就完了哦 应该没错吧?
    2018-01-18 16:25:12
  • bbbboom #2
    如果要是开始就想判断输入的内容是否和123456相等,那么就要把最后一步的else if判断和123456相等的分离出来,如果不分离,是没有办法进入到判断相等的路径里面的,可以自己尝试一下,
    2018-01-18 16:44:09
  • 鹿屿 提问者 #3
    非常感谢!
    2018-01-19 09:59:20
提问者 鹿屿 2018-01-18 16:49:45
var pwd,pwdAgain;
        pwd=parseInt(prompt("请输入密码"));
        while (pwd!=123456){
            if (isNaN(pwd)) {
                alert("请输入数字")
            } else if(pwd.length!=6){
                alert("请输入6位数!")
            }
            pwd=parseInt(prompt("请输入密码no"));
        }
        
        while (pwd==123456){
        	pwdAgain=parseInt(prompt("正确,请再次输入密码"));
        	if (pwdAgain==123456) {
                    alert("正确了!")
                    break;
              } else{
              	pwd=parseInt(prompt("请输入密码no2"));
              }
        }

重新改了一下把第一个循环里原来的如果==123456提取出来放到了一个第二个循环里进行判断。这样是不是就好了点了?

  • bbbboom #1
    第二个循环已经不需要了,只要第一个循环条件为假,肯定会走while循环外面的代码,直接判断第二次输入就可以了,输入正确,弹出ok,输入错误,弹出no,如果你想要判断第二次输入错误,直接继续从开始执行,这是需要封装代码的,暂时还是不要考虑了
    2018-01-18 18:53:09
  • 提问者 鹿屿 回复 bbbboom #2
    var pwd,pwdAgain; pwd=parseInt(prompt("请输入密码")); while (pwd!=123456){ if (isNaN(pwd)) { alert("请输入数字") } else if(pwd.length!=6){ alert("请输入6位数!") } pwd=parseInt(prompt("请输入密码no")); pwdAgain=parseInt(prompt("正确,请再次输入密码")); if (pwdAgain==123456) { alert("正确了!") break; } } 这样吗?
    2018-01-19 09:34:03
  • bbbboom 回复 提问者 鹿屿 #3
    你写完之后没有测试吗,你的程序是执行不了的,if判断里面加break是错的,可以这样写: var pwd, pwdAgain; pwd = parseInt(prompt("请输入密码")); while (pwd != 123456) { if (isNaN(pwd)) { alert("请输入数字") } else if (pwd.length != 6) { alert("请输入6位数!") } pwd = parseInt(prompt("请输入密码no")); } pwdAgain = parseInt(prompt("正确,请再次输入密码")); if (pwdAgain == 123456) { alert("正确了!") } 自己试一下!
    2018-01-19 09:40:31
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师