Leaym
2021-07-14 00:24
采纳率: 100%
浏览 21
已采纳

初级js问题,这段代码哪里错了??

这个ATM机的小程序里密码错误和case0退出为什么都会跳到,用户名不存这个else里面去


const as = require('readline-sync');

let accunt = [`z3`, 123, 100, `l4`, 456, 200, `w5`, 789, 300,];
let count = 3

let state = true;

while (count >= 3 && state) {
    count--;

    console.log(`请输入账号`)
    let inputName = as.question()


    for (let index = 0; index < accunt.length; index++) {

        if (inputName == accunt[index] && (index % 3 == 0 || index == 0)) {
            console.log(`请输入密码`)
            let inputPwd = as.question();
            if (inputPwd == accunt[index + 1]) {
                console.log(`登录成功`)


                while (
                    state
                ) {
                    console.log(`请选择 1、查询余额 2、存款 3、取出  0、退出`);
                    let inputNum = as.question() - 0;
                    switch (inputNum) {
                        case 0:
                            console.log(`see you`)
                            state = false;
                            break;
                        case 1:
                            console.log(`您当前余额为${accunt[index + 2]}`);
                            break;
                        case 2:
                            console.log(`请输入存入金额`);
                            let inputMoney = as.question() - 0;
                            accunt[index + 2] += inputMoney;
                            console.log(`存入成功,您当前的余额是${accunt[index + 2]}`);
                            break;
                        case 3:
                            console.log(`请输入需要取出的金额`);
                            let drawMoney = as.question() - 0;
                            if (drawMoney > accunt[index + 2]) {
                                console.log(`您的余额不足`);
                            }
                            else {
                                accunt[index + 2] = accunt[index + 2] - drawMoney;
                                console.log(`取出成功,您当前余数为${accunt[index + 2]}`);
                            }
                            break;

                    }

                }


            } else if (index == accunt.length - 1) {
                (`您输入的密码有误,请重新输入。您当前还可以输入${count}次`)
                
            }








        }

        else if (count == 0) {
            console.log(`登录失败,您的账户已经被冻结`);
        }




        else if (index == accunt.length - 1) {
            console.log(`您输入的用户名${inputName}不存在,请重新输入。您当前还可以输入${count}次`)
        }
        

    }
}
  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • CSDN专家-sinjack 2021-07-14 01:07
    已采纳

    你代码业务逻辑有点乱,你把判断if else层级分好。也可以用debugger调试一下。

    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题