JS实战案例二:用While循环和Switch打造你的第一个“银行存取款系统”

0 阅读3分钟

1. 前言:让代码拥有“记忆”

哈喽大家好,我是心连欣。在上一篇文章中,我们用 prompt 和 document.write 实现了简单的订单确认。但那个程序是“一次性”的,执行完就结束了。

今天,我们要挑战一个更高级的案例——银行ATM机系统

这个系统比之前的案例更智能,它需要具备两个核心能力:

  • 记忆能力:  它能记住你的余额,不管你存了多少、取了多少,它都能实时更新。
  • 持续交互:  只要你不选择退出,它就会一直为你服务,而不是一次性就关闭。

2. 效果演示

程序运行后,会弹出一个菜单框:

  • 输入 1:存钱,余额增加。
  • 输入 2:取钱,余额减少(如果钱不够,会提示你)。
  • 输入 3:查看当前余额。
  • 输入 4:退出系统,程序结束。

3. 核心代码实现

直接上代码!

image.png

4. 知识点深度解析

这段代码虽然不长,但涵盖了 JavaScript 基础中最核心的三个概念:

1. while(true) 与 break:掌控程序的生死

  • 我们使用了 while(true) 创建了一个“死循环”。这意味着,如果不加干预,程序会无限地弹出菜单。
  • 关键点:  break 关键字。只有当用户输入 4 时,if (xuqiu === 4) 条件成立,break 才会执行,强行终止循环,让程序结束。

2. 数据类型转换:那个神奇的 + 号

  • 注意这行代码:let xuqiu = +prompt(...)
  • prompt 弹窗获取到的内容默认是字符串类型(比如 "1")。
  • 如果不转换,switch 判断时可能会出问题(因为 1 不等于 "1")。
  • 我们在 prompt 前面加了一个加号 + ,这是一种简便的写法,能瞬间把字符串 "100" 变成数字 100,方便我们进行数学计算。

3. switch 分支结构与逻辑判断

  • switch  就像是一个交通指挥官,根据用户输入的数字,把程序引导到不同的功能块(存钱、取钱或查余额)。
  • if/else  在取钱(case 2)的逻辑中,我们嵌套了一个 if 判断。这是为了处理业务逻辑:取钱前必须判断余额是否充足。如果 total < qu,就不能让减法发生,从而避免了余额变成负数。

5. 总结

通过这个案例,我们不仅复习了变量的定义,还学会了如何让程序“活”起来——通过循环保持运行,通过判断处理逻辑。虽然对很多高手来说是入门级别甚至非常简单,但是新手宝宝们,让我们一起努力,从最简单的做起,慢慢成长。如果有高手老师看到了我的文章,可以给我提一些意见吗。或者大家一起交流一下学习方法。(❁´◡`❁)

下一步思考:
目前的程序如果刷新页面,余额就会重置回 100。如果你想让余额永久保存,即使关闭浏览器也不丢失,该怎么做呢?(提示:了解一下 localStorage)。


觉得有用的话,欢迎点赞收藏,我们下一篇实战见!