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 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了