haoyunnnnnn 2021-07-14 00:24 采纳率: 100%
浏览 23
已采纳

初级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调试一下。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 7月14日
  • 创建了问题 7月14日

悬赏问题

  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100