JS ATM练习案例(复习循环知识)

需求:用户可以选择存钱、取钱、查看余额和退出功能。

分析:1循环时反复出现提示框,所以提示框写到循环里面。

2.退出的条件是4,所以是4就会结束循环

3.提前准备一个金额预存储

4取钱为减法操作,存钱为加法操作,查看为直接显示数额。

5输入不同的值,可以用switch来执行不同操作。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>  
        let money = 100;  
      
        while (true) {  
            let re = +prompt(`  
            请您选择操作:  
                1.存钱  
                2.取钱  
                3.查看余额  
                4.退出`);  
            if (re === 4) {  
                break;  
            }  
            switch (re) {  
                case 1:  
                    let cun = +prompt(`请输入存款金额`);  
                    if (cun >= 0) {  
                        money += cun;  
                        alert('存款成功'); // 添加操作成功提示  
                    } else {  
                        alert('存款金额必须为非负数'); // 更改错误提示  
                    }  
                    break; // 添加break语句  
                case 2:  
                    let qu = +prompt(`请输入取款金额`);  
                    if (qu >= 0 && qu <= money) { // 确保取款金额不超过余额  
                        money -= qu;  
                        alert('取款成功'); // 添加操作成功提示  
                    } else {  
                        alert('取款金额错误或余额不足'); // 更改错误提示  
                    }  
                    break; // 添加break语句  
                case 3:  
                    alert(`金额为: ${money}`);  
                    break;  
            }  
        }  
    </script>
</body>
</html>

这里的+号将字符串转化成数字类型

break退出整个循环

continue退出本次循环,进入下一次循环。

do while 循环先执行一次再判断循环

在 JavaScript(以及其他许多编程语言中),do...while 循环是一种后测试循环,意味着循环体至少会执行一次,然后才会检查条件以确定是否应继续循环。这与 while 循环不同,while 循环会在每次迭代之前检查条件,因此如果条件从一开始就不满足,循环体可能一次都不会执行。

switch case和if else都是编程中常用的条件判断语句,但它们之间存在一些关键的区别。

  1. 使用场景
  • switch case通常用于处理具有多个离散值的情况,特别是当这些值是常量或枚举类型时。它通常用于处理算术表达式或字符。
  • if else则更加灵活,可以用于各种条件判断,包括范围判断(大于、小于或等于某个范围)。其判断条件可以是逻辑表达式,布尔类型的合法表达式,常量,枚举等。
  1. 执行效率
  • 当分支较少时,if else语句的执行效率通常比switch case高,因为if else不需要生成跳转表。
  • 当分支较多时,switch case的执行效率更高。这是因为switch case确定了选择值之后直接跳转到那个特定的分支,而if else需要遍历所有条件分支直到找到匹配的条件。
  1. 代码可读性
  • 当分支较多时,使用switch case语句可以使代码结构更清晰,提高代码的可读性。
  • 相比之下,if else语句在分支较多时可能会使代码显得较为混乱。
  1. 空间占用
  • switch case语句会生成一个跳转表来指示实际的case分支的地址,这占用了较多的代码空间。特别是当case常量分布范围很大但实际有效值又比较少时,switch case的空间利用率会变得很低。
  • if else则不需要生成跳转表,因此在空间占用上通常优于switch case。
  • switch注意全等问题,=== 注意类型的转化

循环for 

基本使用:

作用:重复执行代码

1.for 循环语法

for(起始值;终止条件;变量变化量){

循环体

}

for(i=1;i<=5;i++){
    document.write('变得有钱')
}

首先i=1,进行条件判断,符合条件执行一次。

i++进行自增,然后继续判断条件

直到不符合条件退出循环。

循环练习:

1.利用循环输出1-100岁

2.求1-100所有的偶数

3.页面中打印5个星星

        for (var i = 0; i < 100; i++) {
            document.write("  " + i);
        }
        let sum = 0
        for (let i = 0; i <= 100; i++) {
            if (i % 2 == 0) {
                sum += i
            }
        }
        document.write(sum);
        for (let a = 1; a <= 5; a++) {
            document.write("*");
        }

for循环最大价值循环数组

遍历:从第一个循环到最后一个

        let arr = ['刘德华', '马士兵', '王凡', '李毅', '张博']
        for (var i = 0; i < arr.length; i++) {
            console.log(arr[i]);
        }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/454203.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

访问学者申请记|美国首所翻译博士点

N老师出国访学的目的一方面是开拓眼界&#xff0c;另一方面也是为完成翻译方向的博士论文创造更好的条件。最终我们获得美国纽约州立大学宾汉姆顿分校的邀请函&#xff0c;该校的“翻译研究和教学项目”&#xff08;TRIP&#xff09;是美国高校设立的第一个翻译博士学位项目&am…

electron + vtkjs加载模型异常,界面显示类似于图片加载失败的图标

electron vtkjs加载模型显示异常&#xff0c;类似于图片加载失败的效果&#xff0c;如上图。 electron开发版本&#xff1a;13。 解决方法&#xff1a;升级electron版本号。 注意&#xff1a;win7最高兼容electron 22版本。

哪个骨传导蓝牙耳机的好?独家揭秘六大选购技巧

在科技飞速前进的今天&#xff0c;骨传导蓝牙耳机以独特的听觉技术逐渐进入大众视野&#xff0c;赢得了众多消费者的青睐。作为一名资深的数码爱好者&#xff0c;我最近频繁地收到朋友们的咨询&#xff0c;他们希望了解哪个骨传导蓝牙耳机的好&#xff1f;对于初入数码圈的朋友…

AI知识库也太方便了吧,中小型企业都要知道它!

生活在这个信息爆炸的时代&#xff0c;信息的获取变得前所未有的方便&#xff0c;但随之而来的却是信息筛选和管理的难题。对于中小型企业来说&#xff0c;如何有效运用自身积累的各类信息&#xff0c;直接影响着企业的运营效率和市场竞争力。而这&#xff0c;正是AI知识库可以…

linux驱动——中断

1.Cortex-A系列的中断的简介 中断的基本概念&#xff1a;(interrupt) 中断本质上是系统内部的异常机制,当中断产生之后&#xff0c;他会停下当前正在执行的任务&#xff0c;转而去做其他的事情,在停下当前正在执行的任务之前,要先入栈&#xff08;保护现场,其他的事情做完之后…

智慧城市大模型来啦!港大百度推出UrbanGPT

论文作者解读链接&#xff1a;https://blog.csdn.net/qq_42715656/article/details/136681839 项目链接&#xff1a;https://urban-gpt.github.io/ 代码链接&#xff1a;https://github.com/HKUDS/UrbanGPT 论文链接&#xff1a;https://arxiv.org/abs/2403.00813 研究实验室链…

CMake 编译 raylib 程序

CMakeLists.txt 内容如下&#xff1a; cmake_minimum_required(VERSION 3.0) project(t001) # 搜索指定目录下源文件 file(GLOB SRC_LIST ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp) # 包含头文件路径 include_directories(F:/vclib/raylib-5.0_win64_mingw-w64/include) # 包含静态…

mysql基于mycat实现读写分离

试验环境 基于mysql主从复制已经实现 mycat主机192.168.199.149&#xff0c;安装好java和jdk 数据库主机192.168.199.150 数据库从机192.168.199.151 149配置 下载mycat并解压 vim /root/mycat/conf/server.xml vim /root/mycat/conf/schema.xml 150是主数据库&#xff0…

Cesium--基于材质旋转图片

材质部分的代码如下 // 自定义材质const customMaterial new Cesium.Material({translucent: true,fabric: {uniforms: {image:circle_img,speed:30.0,},source: czm_material czm_getMaterial(czm_materialInput materialInput){czm_material material czm_getDefaultMateri…

“光谱视界革新:ChatGPT在成像光谱遥感中的智能革命“

遥感技术主要通过卫星和飞机从远处观察和测量我们的环境&#xff0c;是理解和监测地球物理、化学和生物系统的基石。ChatGPT是由OpenAI开发的最先进的语言模型&#xff0c;在理解和生成人类语言方面表现出了非凡的能力。本文重点介绍ChatGPT在遥感中的应用&#xff0c;人工智能…

JVM 类的加载篇

我们都知道一个类从加载到卸载一共分为七个过程 加载 - 链接(验证 - 准备 - 解析) - 初始化 - 使用 - 卸载 下文我们将详细解析这些过程 谁需要加载? 在Java中数据类型分为基本数据类型和引用数据类型,基本数据类型由虚拟机预定义,引用数据类型则需要类的加载 1.加载/装载(loa…

Flex布局实现一部分元素左对齐,一部分右对齐

单个Flex容器内有三个靠右对齐的按钮&#xff0c;如图&#xff1a; display: flex; justify-content: flex-end; 现在需让红色按钮靠左&#xff0c;而另外两个蓝色按钮保持靠右&#xff1a; 方法一&#xff1a; 为红色按钮单独加上&#xff1a;flex: 1; 原理是&#xff1a;利用…

【Docker】docker-compose安装

中文网上复制粘贴的很多&#xff0c;尤以docker-compose为甚。搜索引擎上能搜到的&#xff0c;github的那个网址&#xff0c;curl显示要十几个小时&#xff08;蛮奇怪&#xff0c;win主机直接访问下载就很快&#xff0c;虚拟机Linux去curl就很慢&#xff09;。daocloud的那个&a…

php对接谷歌admob广告收益reporting api分享

今天收到需求,需要对接reporting api接口&#xff0c;拉取广告收益回来。网上找到文档开始对接&#xff0c;对接完成了&#xff0c;今天分享给大家一些心得 文档地址:https://developers.google.com/admob/api/v1/reporting?hlzh-cn#php-client-library 因为接口使用的google…

闪回技术

目录 闪回技术 恢复mybonus表 彻底删除mybonus表 清空回收站 Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 闪回技术 Flash Back 给予用户最为直接的支持之一就是给了用户后悔的机会 但是现在如果用户想去操作这个…

全网最完整的iperf测试工具使用说明

文章目录 前言iPerf 2.0、iPerf 3.0 和 iPerf 3.1 之间的变化iPerf 3 用户文档iPerf 2.0.6、iPerf 2.0.7 和 iPerf 2.0.8 之间的更改iPerf 2 用户文档调整 TCP 连接调整 UDP 连接组 播IPv6 模式使用代表性流测量带宽将服务器作为守护程序运行 前言 iPerf - TCP、UDP 和 SCTP 的…

VUE实现Provide的计算属性

通过此篇可以学到&#xff1a; 如何使用Providerinject进行“跨代”传值如何实现一个计算属性的Provider如何解决告警“injection "xxxxx" not found. ” 一、描述 目前需要创建一个计算属性传入Provide&#xff0c;并且能够被其他组件Inject 二、实现 父组件 .…

每日一题——LeetCode1678.设计Goal解析器

方法一 splice 将字符串转为数组&#xff0c;对数组进行遍历&#xff0c;碰到G保持不变&#xff0c;继续循环&#xff0c;碰到 ( 看他后一位&#xff0c;是 ) 则删除两个元素&#xff0c;添加一个 o &#xff0c;不是则删除四个元素&#xff0c;添加元素 al &#xff0c;最后将…

Python—实例练习

1.编写程序x1&#xff0c;请先输入a和b两个整数&#xff0c;然后编写程序并输出 # (1)计算并显示a的绝对值&#xff1b; print("请输入a&#xff1a;") aint(input())if a>0:print(a) else:print(-a) # (2)两数中的最大值&#xff1b; a int(input()) b int(…

ProcessOn:让你的思维导图与流程图绘制更加高效

ProcessOn&#xff1a;让你的思维导图与流程图绘制更加高效 在当今这个信息爆炸的时代&#xff0c;有效地组织和呈现我们的想法变得尤为重要。无论是学生、教师、项目经理还是设计师&#xff0c;一个好的思维导图或流程图工具都能让我们的工作和学习更加高效。今天&#xff0c…