[JavaScript] 深入理解流程控制结构

文章目录

在编程中, 流程控制 是指控制代码执行顺序的机制。通过流程控制结构,我们可以根据不同的条件执行不同的代码块,实现逻辑判断、循环遍历和跳出循环等功能。常见的流程控制语句有: if-elseswitch-caseforwhile,以及控制语句 breakcontinue。本文将详细讲解这些控制结构的用法,并深入理解 breakcontinue的应用。

1. if-else 语句

if-else语句是最基本的流程控制结构之一,用于基于条件表达式来执行不同的代码块。它通过判断一个或多个条件表达式的真假来决定是否执行某个代码块。

基本语法:
javascript 复制代码
if (condition) {
    // 条件为 true 时执行的代码
} else {
    // 条件为 false 时执行的代码
}
示例:
javascript 复制代码
let age = 20;
if (age >= 18) {
    console.log("成年人");
} else {
    console.log("未成年人");
}
扩展:else if

如果有多个条件需要判断,可以使用else if来处理多个分支条件。

javascript 复制代码
let score = 85;
if (score >= 90) {
    console.log("优秀");
} else if (score >= 75) {
    console.log("良好");
} else if (score >= 60) {
    console.log("及格");
} else {
    console.log("不及格");
}

2. switch-case 语句

switch-case语句用于处理多个可能的条件,通常适用于多个不同值的判断。它与if-else相比更简洁,尤其在有多个值需要判断时。

基本语法:
javascript 复制代码
switch (expression) {
    case value1:
        // expression === value1 时执行的代码
        break;
    case value2:
        // expression === value2 时执行的代码
        break;
    default:
        // 如果没有匹配的 case 执行的代码
}
示例:
javascript 复制代码
let fruit = "apple";
switch (fruit) {
    case "apple":
        console.log("这是一个苹果");
        break;
    case "banana":
        console.log("这是一个香蕉");
        break;
    default:
        console.log("未知的水果");
}
注意事项:
  • switch语句会比较严格 的值(包括数据类型),因此如果需要进行非严格的比较,可以考虑使用if-else
  • break是用来跳出switch语句块的。如果没有break,程序会继续执行下一个case,即使它的值不匹配,这种情况叫做fall-through

3. for 循环

for循环用于重复执行一段代码,直到满足退出条件。它通常用于已知执行次数的场景。

基本语法:
javascript 复制代码
for (initialization; condition; increment) {
    // 循环体
}
  • initialization:初始化部分,通常用于定义和初始化循环变量。
  • condition:条件表达式,判断是否继续执行循环。
  • increment:每次循环结束时,更新循环变量。
示例:
javascript 复制代码
for (let i = 0; i < 5; i++) {
    console.log(i);  // 输出 0 1 2 3 4
}
扩展:for-infor-of
  • for-in:用于遍历对象的键(属性)。
  • for-of:用于遍历数组或其他可迭代对象的元素。
javascript 复制代码
// for-in 示例
const person = { name: "Alice", age: 25 };
for (let key in person) {
    console.log(key + ": " + person[key]);
}

// for-of 示例
let arr = [1, 2, 3];
for (let value of arr) {
    console.log(value);  // 输出 1 2 3
}

4. while 循环

while循环用于在条件为真时反复执行一段代码,适用于循环次数不确定的情况,通常在开始前无法预知循环次数时使用。

基本语法:
javascript 复制代码
while (condition) {
    // 循环体
}
示例:
javascript 复制代码
let count = 0;
while (count < 5) {
    console.log(count);  // 输出 0 1 2 3 4
    count++;
}
注意事项:
  • 如果条件从一开始就是falsewhile循环不会执行任何代码。
  • 使用while时要小心无限循环 ,确保循环条件最终能变为false

5. do-while 循环

do-while循环与while循环类似,区别在于do-while会先执行一次循环体,然后再检查条件。

基本语法:
javascript 复制代码
do {
    // 循环体
} while (condition);
示例:
javascript 复制代码
let count = 0;
do {
    console.log(count);  // 输出 0 1 2 3 4
    count++;
} while (count < 5);

6. break 和 continue 的使用

6.1 break

break语句用于跳出循环switch-case语句块,通常在满足某个条件时使用,跳出当前的循环或代码块。

示例:
javascript 复制代码
for (let i = 0; i < 10; i++) {
    if (i === 5) {
        break;  // 当 i 等于 5 时跳出循环
    }
    console.log(i);
}

输出:

plain 复制代码
0
1
2
3
4
6.2 continue

continue语句用于跳过当前循环的剩余部分,直接进入下一次循环迭代。它不会终止整个循环,而是跳过当前循环中的其余代码,继续执行下一次循环。

示例:
javascript 复制代码
for (let i = 0; i < 5; i++) {
    if (i === 2) {
        continue;  // 当 i 等于 2 时跳过当前循环
    }
    console.log(i);
}

输出:

plain 复制代码
0
1
3
4

总结

  • if-else:用于条件判断,决定执行哪段代码。
  • switch-case:用于多条件选择,尤其适用于固定值判断。
  • for:用于已知次数的循环,通常用于遍历数组或固定次数的任务。
  • while:用于在未知次数的情况下执行循环,直到条件不再满足。
  • break :用于跳出当前循环或switch语句块。
  • continue:用于跳过当前循环的剩余部分,进入下一次迭代。

掌握这些控制结构和语句的使用,可以使你在编写代码时更加灵活和高效,能够应对各种复杂的逻辑需求。在实际开发中,合理地选择控制结构将直接影响代码的可读性和执行效率。

相关推荐
忘梓.1 分钟前
墨色规则与血色节点:C++红黑树设计与实现探秘
java·开发语言·c++
hhh3u3u3u2 分钟前
Visual C++ 6.0中文版安装包下载教程及win11安装教程
java·c语言·开发语言·c++·python·c#·vc-1
IT_陈寒4 分钟前
Python的列表推导式里藏了个坑,差点让我加班到凌晨
前端·人工智能·后端
星河耀银海4 分钟前
C++ 模板进阶:特化、萃取与可变参数模板
java·开发语言·c++
cccccc语言我来了8 分钟前
【C++---unordered_set/map底层封装】个不拘一格的集合。它不似有序集合那般循规蹈矩,而是以一种洒脱不羁的方式,将元素们随意地散落其中。每一个元素都是独一无二的。
开发语言·c++·哈希算法
Zfox_8 分钟前
C++ IO流全解析:标准库中的数据处理与文件读写艺术
开发语言·c++
加号39 分钟前
【C#】实现沃德普线光控制器通信控制(附完整源码)
开发语言·c#
吴声子夜歌12 分钟前
ES6——正则的扩展详解
前端·mysql·es6
天若有情67334 分钟前
【C++原创开源】formort.h:一行头文件,实现比JS模板字符串更爽的链式拼接+响应式变量
开发语言·javascript·c++·git·github·开源项目·模版字符串
天***885237 分钟前
Edge 浏览器离线绿色增强版+官方安装包,支持win7等系统
前端·edge