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 = 0for (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]);}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序修改placeholder样式

微信小程序有既定的修改placeholder的标签 一、placeholder-style直接修改样式 <input type"text" placeholder"请输入" placeholder-style"color:#e2e2e2;"></input>二、placeholder-class设置样式类 <input type"text&…

九数分三组

枚举三位数时&#xff0c;不用写三个循环&#xff0c;写出最小和最大数循环就行。在这题里要求三个数中不能有重复的数字&#xff0c;先转换为字符串&#xff0c;再转换为字符数组进行排序&#xff0c;最后比较字符串就可以得出结果。这题把结果和原因调换了一下

Python学习日记之学习turtle库(下 篇)

前言&#xff1a; 书接上篇&#xff0c;我们继续来了解Python内置库 turtle功能库。在前面的文章中&#xff0c;我们初步的了解了一下 turtle库&#xff0c;画布和画笔相关的函数&#xff0c;那么我们继续来深入了解一下吧。 详情见&#xff1a; Python学习日记之学习turtle库…

车载诊断协议DoIP系列 —— AL IPv6地址分配通用DoIP报头结构

车载诊断协议DoIP系列 —— AL IPv6地址分配&通用DoIP报头结构 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自…

深度学习进阶:揭秘强化学习原理,实战应用全解析!

作为机器学习领域的一大分支&#xff0c;强化学习以其独特的学习方式吸引了众多研究者和实践者的目光。强化学习&#xff0c;顾名思义&#xff0c;是通过不断地强化与环境的交互来优化决策策略。在这个过程中&#xff0c;智能体通过试错&#xff0c;根据环境给出的奖励信号来调…

逆变器功率软起斜率要求

安规说明 在NB32004中&#xff0c;有明确要求&#xff0c;有功功率调整速率不得超过正负10%Pn/min&#xff0c;包括起停机。 控制对象 控制功率最终是通过调整D轴电流给定来达到限制功率的目的&#xff0c;所以我们只要让D轴的电流给定限幅值按照10%/min增加就好了。 具体实…

媒体单位专用小记者报名及各类活动报名系统介绍

媒体单位专用小记者报名及各类活动报名系统介绍 小记者活动鼓励孩子们关注生活和社会&#xff0c;丰富成长体验&#xff0c;开启心智&#xff0c;淬砺思想。这不仅有助于提高他们的理性思辨力&#xff0c;还能培养他们的社会责任感和公民意识。小记者活动为学生提供了一个全新…

51单片机系列-单片机定时器

&#x1f308;个人主页&#xff1a;会编辑的果子君 &#x1f4ab;个人格言:“成为自己未来的主人~” 软件延时的缺点 延时过程中&#xff0c;CPU时间被占用&#xff0c;无法进行其他任务&#xff0c;导致系统效率降低&#xff0c;延时时间越长&#xff0c;该缺点就越明显&…

【GO语言卵细胞级别教程】10.探索Go语言中神奇的Map类型:解密键值对的魔力(含习题)

【GO语言卵细胞级别教程】10.探索Go语言中神奇的Map类型&#xff1a;解密键值对的魔力&#xff08;含习题&#xff09; 文章目录 【GO语言卵细胞级别教程】10.探索Go语言中神奇的Map类型&#xff1a;解密键值对的魔力&#xff08;含习题&#xff09;1.简介2. 基本语法3.Map基本…

考研复试C语言篇

第一章 概述 1.1什么是程序 为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的合集。 1.4C语言的特点 代码级别的跨平台&#xff1a;由于标准的存在&#xff0c;使得几乎同样的C代码可用于多种操作系统&#xff0c;也适用于多种机型。使允许直接访问物理地址…

维度建模之公共明细层

在模型设计时多事务事实表和累积快照事实表的选取&#xff0c;如果是基于多个业务过程联合分析而构建的事实表&#xff0c;比如订单全流程表应设计为累积快照事实表&#xff0c;而多事务事实表应该是有多个业务过程&#xff0c;多个度量&#xff0c;并且这些业务过程还应该有一…

供应IMX290LQR-C芯片现货

长期供应各品牌芯片现货&#xff0c;SONY索尼SONY索尼CMOS/CCD芯片全系列全新现货优势出&#xff1a; IMX225LQR-C IMX415-AAQR-C IMX290LQR-C imx273llr-C IMX397CLN-C IMX637-AAMJ-C IMX647-AAMJ-C IMX991-A***-C IMX991-AABJ-C IMX287LLR-C IMX287LQR-C IMX297L…

git fetch 合并远程仓库到本地

git fetch origin master //从远程主机的master分支拉取最新内容 git merge FETCH_HEAD //将拉取下来的最新内容合并到当前所在的分支 https://www.cnblogs.com/runnerjack/p/9342362.html 使用git fetch和git merge手动解决一次pull request冲突

python可视化绘图2.0

五星红旗 import turtle import mathturtle.pensize(3) turtle.colormode(255)# 画背景 turtle.pencolor("#ed120c") turtle.fillcolor("#ed120c") turtle.begin_fill() turtle.penup() turtle.goto(-150, 100) turtle.pendown()for i in [300, 200, 300,…

Svelte之基础知识一

文章目录 参考资料什么是Svelte&#xff1f;简介添加数据{}动态属性{}嵌套组件HTML标签html创建一个应用程序 反应性能力赋值on:click{}声明$:语句$:{}更新数组和对象 属性Declaring propsexport属性对象传递{...xxx} 逻辑if语句{#if xxx}...{/if}else语句{#if xxx}...{:else}.…

Coordinate Attention(CVPR 2021)

paper&#xff1a;Coordinate Attention for Efficient Mobile Network Design official implementation&#xff1a;GitHub - houqb/CoordAttention: Code for our CVPR2021 paper coordinate attention 背景 注意力机制&#xff0c;已经被广泛用于提高深度神经网络的性能&…

HBuilder发行微信小程序

首先需要完善mainifest.json中的基本配置 这个需要组测dcloud才可以获取&#xff0c;注册后点击重新获取就可以。 然后发行前还需要完成dcloud的信息&#xff0c;这个他会给你网址 点击连接完成信息填写就可以了 然后就可以发行了。 发行成功后会自动跳转微信小程序&#xff…

Sklearn逻辑回归

逻辑回归是一种广泛用于分类问题的机器学习算法。在Python中&#xff0c;你可以使用Sklearn库&#xff08;scikit-learn&#xff09;来方便地实现逻辑回归。下面是一个简单的例子&#xff0c;展示了如何使用Sklearn进行逻辑回归。 # 导入必要的库 from sklearn.model_selectio…

大数据面试(Kafka面试真题-卷二)

大数据面试&#xff08;Kafka面试真题&#xff09; 1、Kafka分区容错性&#xff1f;2、Kafka的IOSR和ACK介绍&#xff0c;ACK分别有几种值&#xff1f;3、Kafka的工作原理&#xff1f;4、Kafka如何保证全局有序&#xff1f;5、Kafka为什么同一个消费者组的消费者不能消费相同的…

6.Java并发编程—深入剖析Java Executors:探索创建线程的5种神奇方式

Executors快速创建线程池的方法 Java通过Executors 工厂提供了5种创建线程池的方法&#xff0c;具体方法如下 方法名描述newSingleThreadExecutor()创建一个单线程的线程池&#xff0c;该线程池中只有一个工作线程。所有任务按照提交的顺序依次执行&#xff0c;保证任务的顺序性…