JavaScript语法基础之流程结构(顺序、选择、循环结构)
目录
1. 流程控制
1.1. 流程控制简介
1.1.1. 顺序结构
1.1.2. 选择结构
1.1.3. 循环结构
1.2. 选择结构:if
1.2.1. 单向选择:if…
1.2.2. 双向选择:if…else…
1.2.3. 多向选择:if…else_if…else…
1.3. 选择结构:switch
1.4. 循环结构:while
1.5. 循环结构:do…while
1.6. 循环结构:for
1. 流程控制
1.1. 流程控制简介
- 流程控制,是任何一门编程语言都有的一个语法,指的是控制程序按照怎样的顺序执行的。
- 在
JavaScript中,共有 3 种流程控制方式(其实任何语言也只有这 3 种)。
1.1.1. 顺序结构
- 在
JavaScript中,顺序结构是最基本的结构。
- 语法:

- 举例:
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><script>var str1 = "G";var str2 = "ok";var str3 = str1 + str2;document.write(str3);</script></head><body></body>
</html>
1.1.2. 选择结构
- 在
JavaScript中,选择结构指的是根据条件判断来决定使用哪一段代码。
- 选择结构有 3 种:
-
- 单向选择;
-
- 双向选择;
-
- 多向选择
- 语法:

1.1.3. 循环结构
- 循环结构,指的是根据条件来判断是否重复执行某一段程序。
- 若条件为
true,则继续循环;若条件为false,则退出循环。
- 语法:

1.2. 选择结构:if
- 在
JavaScript中,选择结构指的是根据条件判断来决定执行哪一段代码。
- 选择结构有 3 种:
-
- 单向选择;
-
- 双向选择;
-
- 多向选择。
- 在
JavaScript中,选择结构共有两种方式: -
- if
-
- switch
1.2.1. 单向选择:if…

- 语法:
if(条件){……
}
- 举例:
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><script>var score = 100;if (score > 60) {alert("那你很棒棒噢~");}</script></head><body></body>
</html>
1.2.2. 双向选择:if…else…

- 语法:
if(条件){……
}
else{……
}
- 举例:
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><script>var score = 100;if (score < 60) {alert("补考!");} else {alert("通过!");}</script></head><body></body>
</html>
- 举例:三目运算符代替双向选择
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><script>var score = 100;var result = score < 60 ? "补考!" : "通过!";alert(result);</script></head><body></body>
</html>
1.2.3. 多向选择:if…else_if…else…
- 多向选择,就是在双向选择的基础上增加 n 个选择分支。
- 语法:
if(条件1){//当条件1为true时执行的代码
}
else if(条件2){//当条件2为true时执行的代码
}
else if(条件3){//当条件3为true时执行的代码
}else {
// 当条件1和条件2都为false时执行的代码
}
- 举例:
<!DOCTYPE html>
<html>
<head><meta charset="utf-8" /><title></title><script>var money = 45;if(money >= 50){alert("买华仔!");}else if(money >= 40 && money < 50){alert("买荷花!");}else if(money >= 30 && money < 40){alert("买宽窄!");}else if(money >= 20 && money < 30){alert("买玉溪");}else{alert("不要抽了!")}</script>
</head>
<body></body>
</html>
1.3. 选择结构:switch

- 语法:
switch(判断值){case 取值1:语块1;break;case 取值2:语块2;break;……case 取值n:语块n;break;default:语句块n+1;
}
- 举例:
<!DOCTYPE html>
<html>
<head><meta charset="utf-8" /><title></title><script>var num1 = parseInt(prompt("请输入第一个值:"));var num2 = parseInt(prompt("请输入第二个值:"));var ysf = prompt("请输入运算符:");var result = null;switch (ysf) {case "+":result = num1 + '+' + num2 + '=' + (num1 + num2);break;case "-":result = num1 + '-' + num2 + '=' + (num1 - num2);break;case "*":result = num1 + '*' + num2 + '=' + (num1 * num2);break;case "/":result = num1 + '/' + num2 + '=' + (num1 / num2);break;default:result = "运算符错误!";break;}alert(result)</script>
</head>
<body></body>
</html>
练习,从浏览器接收1-7之间的正整数,判断并输出是星期几
<script>var day = 3;var week;switch (day) {case 1:week = "星期一";break;case 2:week = "星期二";break;case 3:week = "星期三";break;case 4:week = "星期四";break;case 5:week = "星期五";break;case 6:week = "星期六";break;default:week = "星期日";}document.write("今天是" + week); //输出今天是星期几</script>
1.4. 循环结构:while
- 在
JavaScript中,循环语句指的是在满足某个条件下循环反复地执行某些操作的语句。
- 语法:
while(条件){//当条件为 true 时,循环执行
}
// 利用while循环输出1~10
// 准备一个迭代变量
var i = 1;
while ( i <= 10){
console.log(i);
i++;
}
- 举例:计算
1+2+3+…+100的值
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><script>var n = 1;var sum = 0;//如果n小于等于100,则会执行while循环while (n <= 100) {sum = sum + n;n = n + 1;}document.write("1+2+3+…+100 = " + sum);</script></head><body></body>
</html>
- 举例:死循环
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><script>while (true) {alert("我也是醉了~");}</script></head><body></body>
</html>
1.5. 循环结构:do…while
- 在
JavaScript中,除了while语句,我们还可以使用do…while语句来实现循环。
- 语法:
do{……
}while(条件);
- 说明:
-
do…while语句首先是无条件执行循环体一次,然后再判断是否符合条件。如果符合条件,则重复执行循环体;如果不符合条件,则退出循环。
-
do…while语句跟while语句是非常相似的,并且任何一个都可以转换成等价的另外一个。
-
do…while语句结尾处括号后有一个分号(;),该分号一定不能省略。
- 举例:
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><script>var n = 1;var sum = 0;do {sum += n;n++;} while (n <= 100);document.write("1+2+3+…+100 = " + sum);</script></head><body></body>
</html>
1.6. 循环结构:for
- 在
JavaScript中,除了while语句以及do…while语句,我们还可以使用for语句来实现循环。
- 语法:
for(初始化表达式; 条件表达式; 循环后操作){……
}
- 举例:
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><script>for (var i = 0; i < 5; i++) {document.write(i + "<br/>");}</script></head><body></body>
</html>
相关文章:
JavaScript语法基础之流程结构(顺序、选择、循环结构)
目录 1. 流程控制 1.1. 流程控制简介 1.1.1. 顺序结构 1.1.2. 选择结构 1.1.3. 循环结构 1.2. 选择结构:if 1.2.1. 单向选择:if… 1.2.2. 双向选择:if…else… 1.2.3. 多向选择:if…else_if…else… 1.3. 选择结构&#…...
集团数字化转型方案(四)
集团数字化转型方案通过全面部署人工智能(AI)、大数据分析、云计算和物联网(IoT)技术,创建了一个智能化的企业运营平台,涵盖从业务流程自动化、实时数据监控、精准决策支持,到个性化客户服务和高…...
【MySQL索引】索引失效场景
索引失效 1 全值匹配肯定不失效 2 最佳左前缀法则 索引文件具有 B-Tree 的最左前缀匹配特性,如果左边的值未确定,那么无法使用此索引。 3 主键插入顺序 页分裂,建议 让主键具有 AUTO_INCREMENT 4 计算、函数、类型转换(自动或手动)导致…...
基于MATLAB视觉的静态手势识别系统
一、课题介绍及思路 为了丰富手势识别方法的多样性,提高手势识别的正确率,提出了一种基于手势轮廓像素变化的手势识别方法。在Matlab环境下,设计并开发了一个基于视觉的静态手势识别系统。系统主要由两部分组成:手势分割与手势识…...
day02-作业题
一、简答题 请说出方法定义的全格式 访问修饰符 静态修饰符 返回值 方法名(参数列表){方法体;retrun 返回值;}请说出方法重载的概念 在一个类中,可以定义方法名相同,参数列表不相同(参数类型、参数个数或者参数顺序不同)的方法请简述什么是类…...
torch.cuda.set_divice()
我申请了两块GPU,然后看两张显卡的编号 import torch torch.cuda.set_device(0) # 设置当前cuda设备编号为1 print("当前cuda设备是", torch.cuda.current_device()) # 获取当前cuda设备import torch torch.cuda.set_device(1) …...
<数据集>RSOD数据集<目标检测>
数据集格式:VOCYOLO格式 图片数量:936张 标注数量(xml文件个数):936 标注数量(txt文件个数):936 标注类别数:4 标注类别名称:[aircraft, oiltank, overpass, playground] 序号类别名称图片数框数1air…...
企业高性能web服务器之Nginx
文章目录 Apache经典的web服务端Apache prefork 模型Apache work 模型(适应市场)Apache event 模型 网络I/O网络I/O模型I/O模型网络I/O模型 Nginx架构和安装Nginx源码编译环境准备安装nginx Nginx的平滑升级及版本回滚 Nginx架构和进程Nginx进程结构Ngin…...
11-sentinel利用nacos作持久化
本文介绍sentinel配置数据的持久化方法。由于sentinel官方并没有提供持久化功能,大家在测试过程中也能发现sentinel服务重启后,原来配置的数据就丢了,本文就是来处理这一问题的。 做好心理准备,我们要修改sentinel的源代码&#…...
密码学之哈希算法
文章目录 1. 哈希函数概述1.1 哈希函数的定义1.2 哈希函数的重要性 2. SHA系列算法简介2.1 SHA系列的发展历史2.2 SHA系列的应用场景 3. 主要SHA算法详解3.1 MD5算法3.2 SHA-1算法3.3 SHA-2算法家族3.4 SHA-3算法 4. SHA算法的安全性分析4.1 安全性的重要性4.2 已知的攻击方法4…...
杰发科技AC7801——GPIO通过寄存器地址控制高低电平
通过这个寄存器来查看控制的是哪个ODR值,使用sample,发现是0x20080068的第7和第9位 使用51控制寄存器的代码来置高置低代码,注意变量需要用unsigned int来声明 unsigned int ledBit 0;mdelay(100);ledBit | (1 << 9); ledBit & ~…...
代码随想录算法训练营第三十一天| 01背包问题 二维 01背包问题 一维 416. 分割等和子集
01背包问题 二维 代码随想录 视频讲解:带你学透0-1背包问题!| 关于背包问题,你不清楚的地方,这里都讲了!| 动态规划经典问题 | 数据结构与算法_哔哩哔哩_bilibili #include <bits/stdc.h> using namespace std;…...
github删除历史所有commit
背景 注意非确认情况下最好不要此操作 由于不小心在某些commits中提交了敏感信息,需要删除这些commits记录 网上看了很多方法,都是根据commit 找到一条id然后全部清除得,因为我是需要全部删除,所以有一种更简单得思路。 过程 1…...
C++前向声明简介
前向声明 class a; class b; class c:public d { ..... }类a和b已经实现了具体功能,类c在定义,在类c上面声明类a和b有什么作用 在类 c 的定义上面声明类 a 和 b 的作用主要是为了确保在编译时能够识别这两个类的存在,特别是在类 c 中可能会使…...
华为手机是越贵越好吗?
华为手机的价格与其性能、功能、设计以及市场定位等多种因素有关,因此不能简单地说华为手机越贵就越好。 首先,华为手机的产品线非常广泛,涵盖了从入门级到旗舰级的多个系列,每个系列都有其特定的目标用户群和市场需求。因此&…...
【java基础】IDEA 的断点调试(Debug)
目录 1.为什么需要 Debug 2.Debug的步骤 2.1添加断点 2.2单步调试工具介绍 2.2.1 Step Over 2.2.2 Step Into 2.2.3 Force Step Into 2.2.4 Step Out 2.2.5 Run To Cursor 2.2.6 Show Execution Poiint 2.2.7 Resume Program 3.多种 Debug 情况介绍 3.1行断点 3.2方…...
MPLS相关实验
一、实验拓扑图以及实验要求 1、实验拓扑图 2、实验要求 合理利用IP地址进行分配R3、R4、R5、R6运行ospf在R2、R3、R4、R5、R6上运行MPLSR1上使用静态,R7上运行rip协议,R8上运行ospf协议全网可达 二、实验分析 合理利用IP地址进行分配R3、R4、R5、R6…...
从零开始学习SLAM(五):极几何与极约束
文章参考计算机视觉life 前备知识 概念 几何关系: 上图中: 极平面(Epipolar plane):点c0, c1, p三点确定的平面; 极点(Epipoles): c0 c1 连线与两个平面的交点 基线&a…...
Freertos学习笔记
目录 1.单片机_RTOS_架构的概念 2.系统中的数据类型和编程命名规范 3.堆和栈的概念 4.rtos各个操作系统的优先级 5.1000HZ1ms;1000ms1s。 6.任务状态转换图 7.FreeRTOS任务管理中的Delay函数 8.任务调度算法 9.同步与互斥的概念 10.能实现同步、互斥的各类…...
线程(Thread)的使用方法和锁(同步代码块,lock锁)的问题
多线程: 进程: 正在运行的程序,是系统进行资源分配和调用的独立单位。 每一个进程都有它自己的内存空间和系统资源。 理解:一个正在运行的软件 线程: …...
【论文速递】BubbleRAG:为“黑盒”知识图谱打造高召回、高精度的证据检索引擎
黑盒知识图谱检索中的三个挑战:语义实例化不确定性、结构路径不确定性、证据比较不确定性 01 研究背景 在复杂问答(如多跳推理、专家识别)任务中,基于知识图谱(KG)的检索增强生成(RAG&#x…...
3大核心功能解放明日方舟玩家双手:MAA自动化助手全攻略
3大核心功能解放明日方舟玩家双手:MAA自动化助手全攻略 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: https://gi…...
Unity UGUI实战:手把手教你打造一个可拖拽、可弯曲的UI连线组件(附完整源码)
Unity UGUI实战:打造可拖拽、可弯曲的智能连线系统 在游戏开发中,可视化连接系统是构建技能树、流程图、科技树等复杂UI结构的核心组件。传统实现往往局限于静态线条或简单的直线连接,缺乏交互性和动态美感。本文将带你从零构建一个支持实时拖…...
香橙派Armbian系统下,用apt一键安装OpenCV的完整流程(含GPG报错解决)
香橙派Armbian系统下OpenCV-Python极简安装指南:绕过源码编译的终极方案 在单板计算机领域,香橙派凭借其出色的性价比逐渐崭露头角。当开发者尝试在这类ARM架构设备上构建计算机视觉应用时,OpenCV往往是不可或缺的核心工具。然而,…...
告别‘夜盲症’:用Python+OpenCV手把手教你实现红外与可见光图像融合(附完整代码)
实战指南:PythonOpenCV实现红外与可见光图像融合技术 夜间监控画面总是模糊不清?自动驾驶系统在低光照环境下识别率骤降?这些问题本质上都是"视觉夜盲症"的表现。今天我们将用最实用的方式,带你用Python和OpenCV构建一个…...
开源 ESP32 网络收音机:OLED 界面与编码器交互全解析
1. ESP32网络收音机项目概述 第一次接触ESP32网络收音机项目时,我被这个小小的开发板展现出的强大功能震撼到了。想象一下,一个火柴盒大小的设备,不仅能连接WiFi播放全球各地的网络电台,还能通过OLED屏幕和编码器实现媲美商业产品…...
Winhance中文版:图形界面驱动的Windows系统优化解决方案
Winhance中文版:图形界面驱动的Windows系统优化解决方案 【免费下载链接】Winhance-zh_CN A Chinese version of Winhance. C# application designed to optimize and customize your Windows experience. 项目地址: https://gitcode.com/gh_mirrors/wi/Winhance-…...
G-Helper解决华硕笔记本续航衰减的智能调控方案:延长50%使用时间
G-Helper解决华硕笔记本续航衰减的智能调控方案:延长50%使用时间 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF,…...
使用Alpine配置WSL ssh门户
1. 哑铃图是什么? 哑铃图(Dumbbell Plot),有时也称为DNA图或杠铃图,是一种用于比较两个相关数据点的可视化图表。 它源于人们对更有效数据比较方式的持续探索。 在传统的时间序列比较中,我们通常使用两条折…...
NoSleep防休眠工具:系统唤醒与持续运行的高效解决方案
NoSleep防休眠工具:系统唤醒与持续运行的高效解决方案 【免费下载链接】NoSleep Lightweight Windows utility to prevent screen locking 项目地址: https://gitcode.com/gh_mirrors/nos/NoSleep 在数字化工作环境中,电脑意外休眠往往导致工作中…...
