JavaScrip——switch类型

news2024/12/23 8:09:31

目录

任务描述

相关知识

严格相等

switch语句

编程要求

任务描述

北美五大湖的名称和面积如下:

名称面积(平方公里)
Superior82414
Huron59600
Michigan58016
Erie25744
Ontario19554

本关任务:根据面积判断湖泊的名字。

相关知识

上一关讲解的是拥有少数分支的if-else结构,实际开发的过程中,还会遇到多分支的情况,比如根据电话号码判断运营商,如果用if-else型条件语句,代码会很长而且难以理解。所幸的是,JavaScript提供了另外一种选择结构:switch语句。

严格相等

在了解switch语句之前,先要知道严格相等的概念,严格相等的符号为===

对于JavaScript中的内置数据类型,如数字,字符串,布尔型等。严格相等要求比较双方的数据类型和值都相等,而相等==只要求比较双方的值相等,因为可以进行数据类型转换。例子如下:

var string = "1";
var number1 = 1;
var number2 = 1;
console.log(string === number1);
console.log(number1 === number2);

输出结果:

false

true

对于JavaScript中的对象类型,严格相等要求双方的引用相同,即必须是同一个对象。如果不是同一个对象,即使双方的属性、值都相同,也被认为不等,比如下面的例子:

var class1 = {
id:251,
name:"class"
}
var class2 = {
id:251,
name:"class"
}
var class3 = class1;
console.log(class2 === class1);
console.log(class3 === class1);

输出结果:

false

true

虽然class1class2的属性名、属性值都相等,但是不满足严格相等,因为它们是不同的对象,指向内存的不同地方。而class3class1严格相等,因为它们指向内存的同一个地方。

switch语句

switch是一种多分支的选择结构,采用等值判断,如下是结构图,其中T表示条件成立,F表示条件不成立,箭头表示语句的执行方向。

switch语句的语法如下:

switch(表达式)
{
    case 值1:语句1;
    break;
    case 值2:语句2;
    break;
    case 值3:语句3;
    break;
    default:语句;
    break;
}

括号中的表达式计算后会得到一个值,该值会从上到下依次与case关键字后面的值比较,如果满足严格相等,则执行相应case后面的语句;如果与所有的值都不满足严格相等,则执行default关键字后的语句。

当和case后面的某一个值完成匹配并执行完语句后,需要用break结束整个的switch选择,否则会与后面的继续匹配。

//函数(方法):根据身份证号前两位判断所在省份
function judgeProvince(idCard) {
    switch(idCard) {
        case 31:console.log("上海");
        break;
        case 32:console.log("江苏");
        break;
        case 33:console.log("浙江");
        break;
        case 34:console.log("安徽");
        break;
        case 35:console.log("福建");
        break;
        case 36:console.log("江西");
        break;
        case 37:console.log("山东");
        break;
        default:console.log("未知");
        break;
    }
}
//调用上面的函数
judgeProvince(36);//输出“江西”

如果不加break,代码会从满足switch条件的地方开始执行,一直执行到最后,不符合的case后面的语句也会被执行。

下面的例子根据输入的分数计算绩点(GPA)

//函数(方法):根据百分制的成绩计算GPA
function calGrade(grade) {
    grade = parseInt(grade/10);//除以10后取整数
    var gpa;
    switch(grade) {
        case 10://注意这后面没有break
        case 9: gpa = 4;break;//90到100均为4
        case 8: gpa = 3;break;
        case 7: gpa = 2;break;
        case 6: gpa = 1;break;
        default: gpa = 0;break;
    }
    return gpa;
}
//调用上面的函数
console.log(calGrage(100));//输出4

grade10的时候,没有break,会往下一直执行;执行到grade9的时候,有break,会终止switch语句块,此时 gpa被赋值4,所以90100分的返回值都是4

编程要求

本关的编程任务是补全右侧代码片段中BeginEnd中间的代码,具体要求如下:

  • 根据面积参数a返回湖泊的名字,湖泊的名称和面积的对照表在最上面的任务描述里面,这里不再赘述;

  • 没有对应的湖泊返回error

function mainJs(a) {
    a = parseInt(a);
	//请在此处编写代码
    /********** Begin **********/
    var s = "error";
    switch (a) {
        case 82414: s = "Superior"; break;
        case 59600: s = "Huron"; break;
        case 58016: s = "Michigan"; break;
        case 25744: s = "Erie"; break;
        case 19554: s = "Ontario"; break;
    }
    return s;
	/********** End **********/
}

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

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

相关文章

Vulhub——struct2

文章目录 一、Struct21.1 Struct2简介1.2 判断Struct2框架1、URL中添加不存在路径2、URL添加/struts/domTT.css3、404、500响应码返回信息 4、URL 二、struct2相关漏洞复现2.1 s2-001手工复现工具探测 2.2 s2-005手工复现工具探测 2.3 s2-007手工复现工具检测 2.4 s2-008手工复…

修复 OpenSSH 爆出极其严重的安全漏洞!

最近几天OpenSSH爆出了一个高危漏洞:CVE-2024-6387,影响到了很多的Linux服务器系统。明月第一时间给所有的代维客户服务器进行了排查和漏洞修复,因此耽搁了一些时间。直到今天才算抽出空来给大家分享一下。严格上来说这个漏洞的危险性还是极高…

mongdb学习与使用

1. 基础概念 MongoDB简介: MongoDB是一个基于文档的NoSQL数据库,具有高性能、高可用性和易扩展性。数据存储在类似JSON的BSON格式中。 基本术语: Database(数据库): 集合的容器。Collection(集合…

ShareSDK iOS端如何实现小红书分享

下载SDK 请登陆官网 ,找到SDK下载,勾选需要的平台下载 导入SDK (1)离线导入将上述下载到的SDK,直接将整个SDK资源文件拖进项目里,如下图: 并且勾选以下3个选项 在点击Finish,…

多载波调制与OFDM原理讲解以及MATLAB实现GUI设计

前言 基于MATLAB设计并实现了一个OFDM调制的图形用户界面(GUI)系统。该系统旨在简化OFDM调制过程的仿真,提供友好的用户交互界面。设计目标是通过GUI实现参数化的OFDM仿真,包括子载波数、符号数、IFFT长度、循环前缀长度、循环后…

Android 换肤之插件换肤

文章目录 Android 换肤之插件换肤概述效果使用步骤代码结构原理 代码下载 Android 换肤之插件换肤 概述 Android 实现应用内换肤的常用方式(两种): 通过Theme切换主题,即静态方法。通过AssetManager切换主题,可实现…

单元测试总结,一文全通

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、何为单测 测试有黑盒测试和白盒测试之分,黑盒测试顾名思义就是我们不了解盒子的…

数据泄露时代的安全之道:访问认证的重要性

引言 想象一下:你一觉醒来,收到一条通知——你的公司遭遇了数据泄露。你感到恐惧,因为这意味着客户数据被曝光,公司声誉受损,还有巨额罚款在等着你。在当今的数字化环境中,这种情况太常见了。全球各地的组…

ansible执行任务时,报错/usr/bin/env node没有文件或目录。

报错如图: 解决:添加软链即可 sudo ln -s /home/app/node-v18.20.3/bin/node /usr/bin/node

Qt开发 | qss简介与应用

文章目录 一、qss简介与应用二、QLineEdit qss介绍与使用三、QPushButton qss1.常用qss1.1 基本样式表1.2 背景图片1.3 图片在左文字在右 2.点击按钮弹出菜单以及右侧箭头样式设置3.鼠标悬浮按钮弹出对话框 四、QCheckBox qss妙用:实时打开关闭状态按钮五、QComboBo…

0-FreeCAD简介

这里写自定义目录标题 FreeCAD简介FreeCAD简介 FreeCAD是一款开源的三维计算机辅助设计(CAD)软件,它主要用于产品设计和工程制图。这款软件可以创建和修改3D模型,支持参数化设计,意味着你可以通过改变模型的参数来调整模型的大小、形状等属性。FreeCAD还支持多种3D文件格式…

【C语言】enum 关键字

在C语言中,enum关键字用于定义枚举类型。枚举是一种用户自定义的数据类型,由一组命名的整型常量构成。使用枚举可以提高代码的可读性和可维护性,特别是在表示一组相关的常量时。 定义和使用枚举类型 基本定义 要定义一个枚举类型&#xff…

党建科普3D数字化展馆支持实时更新迭代

3D虚拟策展逐渐成为新时代下的主流方式,深圳华锐视点作为专业的web3d开发公司,具有专业化的3D数字化空间还原能力,能根据企业/个人不同需求和预算,为您打造纯线上虚拟3D艺术展,让您彻底摆脱实体美术馆的限制&#xff0…

使用Ckman部署ClickHouse集群介绍

使用Ckman部署ClickHouse集群介绍 1. Ckman简介 ClickHouse Manager是一个为ClickHouse数据库量身定制的管理工具,它是由擎创科技数据库团队主导研发的一款用来管理和监控ClickHouse集群的可视化运维工具。目前该工具已在github上开源,开源地址为&…

【基于R语言群体遗传学】-4-统计建模与算法(statistical tests and algorithm)

之前的三篇博客,我们对于哈代温伯格遗传比例有了一个全面的认识,没有看的朋友可以先看一下前面的博客: 群体遗传学_tRNA做科研的博客-CSDN博客 1.一些新名词 (1)Algorithm: A series of operations executed in a s…

uni-app上传失败超出文件限制解决方法-分包处理-预加载

分包背景 当你的上传出现一下错误: Error: 系统错误,错误码:80051,source size 2089KB exceed max limit 2MB [20240703 10:53:06][wxbf93dfb6cb3eb8af] [1.06.2405010][win32-x64] 说明你主包太大需要处理了,一下两种方法可以…

51单片机嵌入式开发:STC89C52操作8八段式数码管原理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 STC89C52操作8八段式数码管原理 1 8位数码管介绍1.1 8位数码管概述1.2 8位数码管原理1.3 应用场景 2 原理图图解2.1 74HC573原理2.2 74HC138原理2.3 数码管原理 3 数码管程序…

QT_GUI

1、QT安装 一个跨平台的应用程序和用户界面框架,用于开发图形用户界面(GUI)应用程序以及命令行工具。QT有商业版额免费开源版,一般使用免费开源版即可,下面安装的是QT5,因为出来较早,使用较多&…

【前端CSS3】CSS引入方式总结(黑马程序员)

文章目录 一、前言🚀🚀🚀二、CSS引入方式:☀️☀️☀️2.1 内部样式表2.2 行内样式表 三、总结🚀🚀🚀 一、前言🚀🚀🚀 ☀️ 回报不在行动之后,回报…

ETL数据集成丨使用ETLCloud实现MySQL与Greenplum数据同步

我们在进行数据集成时,MySQL和Greenplum是比较常见的两个数据库,我们可以通过ETLCloud数据集成平台,可以快速实现MySQL数据库与数仓数据库(Greenplum)的数据同步。 MySQL数据库: 优点: 轻量级…