为了账号安全,请及时绑定邮箱和手机立即绑定

JS流程控制教程:入门必学

概述

本文详细介绍了JS流程控制的基本概念和重要性,涵盖了条件语句、循环语句和switch语句等核心结构,并通过具体示例解释了它们的使用方法。文章还探讨了如何利用这些结构进行复杂的逻辑控制,帮助读者掌握JS流程控制教程。

JS流程控制简介

什么是流程控制

流程控制是指程序执行的顺序和逻辑控制。在JavaScript中,流程控制通过不同的语句和结构实现,例如if语句、switch语句、循环语句等。这些结构决定了代码的执行顺序和条件,确保程序按预期运行。

流程控制的重要性

流程控制在编程中起着至关重要的作用,它允许程序员精确地控制程序流程。例如,使用if语句可以根据条件的不同,选择执行不同的逻辑分支;使用循环可以重复执行一段代码,直到满足某个条件为止。这种控制能力使得程序员可以构建出响应不同输入或状态的复杂程序。

常见的流程控制结构

  1. 条件语句:如if语句,用于根据条件执行不同的代码逻辑。
  2. switch语句:用于多分支选择,根据一个表达式的值选择执行多个可能的分支之一。
  3. 循环语句:如while和for循环,用于重复执行一段代码,直至满足终止条件。
  4. 跳出语句:如break和continue,用于控制循环的执行流程。
if语句详解

if语句的基本结构

if语句的基本结构是用于判断一个条件是否成立。如果条件为真,则执行if代码块中的语句;如果条件为假,则跳过if代码块。

if (condition) {
    // 执行代码
}

例如,检查一个数字是否为正数:

let number = 5;
if (number > 0) {
    console.log("数字是正数");
}

if...else语句

if...else语句用于处理两个互斥的分支,当条件为真时执行if部分,条件为假时执行else部分。

if (condition) {
    // 执行代码1
} else {
    // 执行代码2
}

例如,检查一个数字是否为正数或负数:

let number = -3;
if (number > 0) {
    console.log("数字是正数");
} else {
    console.log("数字是负数");
}

if...else if...else语句

if...else if...else语句允许处理多个条件分支。如果第一个条件不成立,则检查第二个条件,依次类推,直到找到一个为真的条件,或者所有条件都不为真时执行else部分。

if (condition1) {
    // 执行代码1
} else if (condition2) {
    // 执行代码2
} else {
    // 执行代码3
}

例如,根据成绩的范围输出不同的评价:

let score = 85;
if (score >= 90) {
    console.log("优秀");
} else if (score >= 80) {
    console.log("良好");
} else if (score >= 70) {
    console.log("中等");
} else {
    console.log("需要努力");
}

条件运算符

条件运算符(三元运算符)是一种简洁的条件判断方式,可以替代简单的if...else语句。其格式为:

condition ? expression1 : expression2

如果condition为真,则返回expression1的结果;否则返回expression2的结果。

例如:

let number = 5;
let result = number > 0 ? "正数" : "非正数";
console.log(result);  // 输出:正数
switch语句详解

switch语句的基本结构

switch语句用于多个可能的分支选择。它的基本结构如下:

switch (expression) {
    case value1:
        // 执行代码1
        break;
    case value2:
        // 执行代码2
        break;
    default:
        // 执行默认代码
}

expression是需要比较的表达式,value1, value2等是与之比较的值。每个case语句对应一个特定的值,如果expression等于某个case的值,则执行该case下的代码块。如果没有任何case匹配,则执行default部分的代码。

case与default的使用

case用于指定特定值的代码块,当expression等于该值时执行对应的代码块。default用于处理没有匹配的case的情况。

let fruit = "apple";
switch (fruit) {
    case "banana":
        console.log("你选择了香蕉");
        break;
    case "apple":
        console.log("你选择了苹果");
        break;
    default:
        console.log("你选择的水果不在列表中");
}

break语句的作用

break语句用于终止当前的switch语句,防止代码意外地继续执行下一个case的代码。如果不使用break,代码会继续执行下一个case,直到遇到breakswitch语句结束。

let fruit = "apple";
switch (fruit) {
    case "banana":
        console.log("你选择了香蕉");
        // 没有 break
    case "apple":
        console.log("你选择了苹果");
        break;
    default:
        console.log("你选择的水果不在列表中");
}

如果不加break,代码会继续执行:

let fruit = "apple";
switch (fruit) {
    case "banana":
        console.log("你选择了香蕉");
        // 没有 break
    case "apple":
        console.log("你选择了苹果");
        break;
    default:
        console.log("你选择的水果不在列表中");
}
循环结构

while循环

while循环在条件为真时重复执行一段代码,直到条件变为假。

while (condition) {
    // 执行代码
}

例如,打印从1到5的数字:

let count = 1;
while (count <= 5) {
    console.log(count);
    count++;
}

do...while循环

do...while循环与while循环类似,但先行执行代码块,然后检查条件。因此,do...while循环至少会执行一次。

do {
    // 执行代码
} while (condition);

例如,打印从1到5的数字,即使初始条件不为真,也会至少执行一次:

let count = 1;
do {
    console.log(count);
    count++;
} while (count <= 5);

for循环

for循环用于已知循环次数的情况,通常用于遍历数组或执行固定次数的循环。

for (initialization; condition; increment) {
    // 执行代码
}

例如,打印从1到5的数字:

for (let count = 1; count <= 5; count++) {
    console.log(count);
}

for循环的其他用法

for循环可以用于更复杂的计数和控制结构,例如步长不为1的循环。

例如,打印从1到10的偶数:

for (let count = 1; count <= 10; count++) {
    if (count % 2 === 0) {
        console.log(count);
    }
}

循环嵌套

循环嵌套是指在一个循环内部嵌入另一个循环。这可以用于更复杂的逻辑,例如多维数组的遍历。

例如,打印一个3x3的乘法表格:

for (let i = 1; i <= 3; i++) {
    for (let j = 1; j <= 3; j++) {
        console.log(i * j);
    }
    console.log("---");  // 分隔每行
}
跳出循环与标签

break语句

break语句用于终止循环的执行。通常用于循环中的条件判断,当满足某个条件时提前退出循环。

例如,跳出数字求和直到和大于10:

let sum = 0;
for (let i = 1; i <= 10; i++) {
    sum += i;
    if (sum > 10) {
        break;
    }
    console.log(sum);
}

continue语句

continue语句用于跳过当前循环的剩余部分,直接开始下一次循环。

例如,打印从1到10的数字,但是跳过偶数:

for (let i = 1; i <= 10; i++) {
    if (i % 2 === 0) {
        continue;
    }
    console.log(i);
}

标签的使用

标签用于标识和控制嵌套循环,可以配合break和continue语句使用,从特定的循环中提前退出。

例如,使用标签跳出嵌套循环:

outer: for (let i = 1; i <= 3; i++) {
    inner: for (let j = 1; j <= 4; j++) {
        if (i * j === 6) {
            break outer;
        }
        console.log(`i: ${i}, j: ${j}`);
    }
}
实践案例

基于条件判断的简单程序

编写一个程序,根据输入的数字判断是否为闰年。

function isLeapYear(year) {
    if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) {
        return true;
    } else {
        return false;
    }
}

let year = 2024;
if (isLeapYear(year)) {
    console.log(`${year} 是闰年`);
} else {
    console.log(`${year} 不是闰年`);
}

使用循环解决问题的实例

编写一个程序,计算从1到100的所有奇数的和。

let sum = 0;
for (let i = 1; i <= 100; i++) {
    if (i % 2 !== 0) {
        sum += i;
    }
}
console.log(`从1到100的所有奇数的和是: ${sum}`);

使用循环和条件控制的复杂实例

编写一个程序,计算从1到n的平方和。

function squareSum(n) {
    let sum = 0;
    for (let i = 1; i <= n; i++) {
        sum += i * i;
    }
    return sum;
}

let n = 10;
console.log(`从1到${n}的平方和是: ${squareSum(n)}`);

通过这些案例,你可以看到条件判断和循环结构如何在实际编程中应用,帮助解决问题并控制程序的流程。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消