1. 前言:让代码拥有“记忆”
哈喽大家好,我是心连欣。在上一篇文章中,我们用 prompt 和 document.write 实现了简单的订单确认。但那个程序是“一次性”的,执行完就结束了。
今天,我们要挑战一个更高级的案例——银行ATM机系统。
这个系统比之前的案例更智能,它需要具备两个核心能力:
- 记忆能力: 它能记住你的余额,不管你存了多少、取了多少,它都能实时更新。
- 持续交互: 只要你不选择退出,它就会一直为你服务,而不是一次性就关闭。
2. 效果演示
程序运行后,会弹出一个菜单框:
- 输入
1:存钱,余额增加。 - 输入
2:取钱,余额减少(如果钱不够,会提示你)。 - 输入
3:查看当前余额。 - 输入
4:退出系统,程序结束。
3. 核心代码实现
直接上代码!
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)。
觉得有用的话,欢迎点赞收藏,我们下一篇实战见!