首页 > 其他分享 >JS ATM练习案例(复习循环知识)

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

时间:2024-03-12 23:32:05浏览次数:32  
标签:case 复习 ATM while JS switch 循环 let else

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

分析: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]);
        }

标签:case,复习,ATM,while,JS,switch,循环,let,else
From: https://blog.csdn.net/weixin_74314406/article/details/136651838

相关文章

  • 力扣148排序链表--复习归并和快速排序
    递归的归并排序归并排序主要流程是拆分--排序--合并--排序--合并//拆分voidmergeSort(vector<int>&nums,intstart,intend){ if(start>=end)return; intmid=start+(end-start)/2; mergeSort(nums,start,mid); mergeSort(nums,mid+1,end); //最后一层排......
  • GDPU JavaWeb JSP基础
    正式走进Javaweb大门,了解jsp及Java在前端的体现。JSP JSP,JavaServerPages是一种基于Java技术的服务器端动态网页技术,允许开发人员在HTML页面中嵌入Java代码。通过JSP,开发人员可以创建包含静态模板和动态内容的网页。当客户端请求一个包含JSP的网页时,服务器会执行其中的J......
  • [js error] SyntaxError: Unexpected token ‘{‘ (at uniFile.js?t=1710138723630:1:
    问题详情问题描述封装一个函数的时候报错问题原因SyntaxError:Unexpectedtoken‘{’(atuniFile.js?t=1710138723630:1:34)SyntaxError:意外的令牌“{”(在uniFile.js?t=1710138723630:1:34)意思是有不符合语法规范的地方在第一行34个字符的地方去到报错文件的地方查......
  • nodejs集成C++代码:手写简单的addon
    文章目录nodejs与node-gyp手写一个简单的addon编写一个简单的binding.gyp文件编写C++源文件V8版本:addon.ccnapi_api版本:addon_api.cc编译命令JS调用在这个专栏里,已经提到过web系统中c++的两大应用场景了:assembly和cef框架的应用,这两个可以说都是客户......
  • ansible-playbook剧本 yaml json jq 学习
    ansible临时命令ad-hocansible中有两种模式,分别是ad-hoc模式和playbook模式ad-hoc简而言之,就是"临时命令"https://docs.ansible.com/ansible/latest/user_guide/intro_adhoc.html临时命令非常适合您很少重复的任务。例如,如果您想在圣诞节假期关闭实验室中的所有机器。Ansib......
  • 亚稳态知识复习
    亚稳态的概念和基本知识亚稳态是指触发器无法在某个规定时间段内达到一个可确认的姿态。当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。在这个期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输......
  • nodejs base64 转存图片文件
     nodejsbase64转存图片文件在Node.js中,您可以使用内置的fs模块来将Base64编码的字符串转换为图片文件。以下是一个简单的例子,展示如何将Base64字符串转换为PNG图片文件:  constfs=require('fs'); //假设您有一个Base64编码的字符串constbase64Stri......
  • pdf.js源码解析-PDF文件的结构
    为了了解pdf.js源码的详细结构和功能,先来看看PDF的文件结构,然后才能知道pdf.js中的代码是如何解析并且为何这样操作PDF文件的。PDF文件基本是由header、body、trailer组成。header包含了这个PDF的信息,比如PDF的版本,创建时间,以及作者等。body包含了PDF文件的实际内容,比如文本,图片,......
  • js 实现点击下拉滚动
    在JavaScript中实现点击下拉菜单后滚动到特定位置,通常用于导航栏的下拉菜单或对话框内容的自动滚动等场景。以下是一个简单的示例:假设我们有一个HTML结构,包含一个可点击的元素(如按钮)和一个需要滚动的下拉列表:<buttonid="dropdown-toggle">点击打开下拉菜单</button><div......
  • js 获取当前时间后三个月的所有日期list
    //获取三个月后的所有日期functiongetDatesOfLastThreeMonths(){consttoday=newDate();constdates=[];for(leti=0;i<=2;i++){constyear=today.getFullYear();constmonth=today.getMonth()+i;//获取当前月份之前......