一、流程控制概述

在程序设计中,需支持三种基础流程控制以实现结构化程序:

  • 顺序控制:程序按自上而下顺序执行,是最基本的流程。
  • 分支控制(条件控制):依据条件判断结果,选择不同执行路径,包含 if 语句、switch 语句 。
  • 循环控制:在条件满足时,重复执行一段代码,涵盖 whiledo...whilefor 等循环语句 。

二、分支流程控制

(一)if 语句【重要】

实现多分支判断,细分为单分支、双分支、多分支、分支嵌套,if 条件括号内可为值或表达式。

1. 单分支

javascript

运行

if (条件表达式) {
    代码段
}

示例:判断成绩是否及格(单分支)

javascript

运行

var score = 78;
if (score >= 60 && score <= 100) {
    console.log('及格');
}
2. 双分支

javascript

运行

if (条件表达式) {
    代码段1 
} else {
    代码段2
}

示例:判断成绩是否及格(双分支)

javascript

运行

var score = 78;
if (score >= 60 && score <= 100) {
    console.log('及格');
} else {
    console.log('不及格');
}
// 双分支改写三元运算符
var res = score >= 60 && score <= 100 ? '及格' : '不及格';
console.log(res);
3. 多分支

javascript

运行

if (条件表达式1) {
    代码段1
} else if (条件表达式2) {
    代码段2
} else if (条件表达式3) {
    代码段3
} else {
    代码段4
}

示例:判断成绩所属等级(多分支)

javascript

运行

var score = 59;
if (score >= 60 && score <= 100) {
    console.log('及格');
} else if (score >= 0 && score <= 59) {
    console.log('不及格');
} else {
    console.log('输入错误!');
}
4. 分支嵌套

在 if 分支内嵌套 if 判断,实现更细粒度条件控制。
示例:成绩细分等级(分支嵌套)

javascript

运行

var score = 80;
if (score >= 60 && score <= 100) {
    if (score >= 85) {
        console.log('优秀');
    } else if (score >= 75) {
        console.log('良好');
    } else {
        console.log('中等');
    }
} else if (score >= 0 && score <= 59) {
    console.log('不及格');
} else {
    console.log('输入错误!');
}

(二)Switch 语句【掌握】

按变量具体值进行多分支判断,switch 括号内只能是变量或值,不能是表达式 。

javascript

运行

switch (变量) {
    case 值1:
        代码段;
        break;
    case 值2:
        代码段;
        break;
    ...
    default:
        代码段;
}

示例:根据星期几输出对应提示

javascript

运行

var d = new Date();
var week = d.getDay(); // 获取星期几
switch (week) {
    case 0:
        console.log('星期天');
        break;
    case 1:
        console.log('星期一');
        break;
    // 其他 case 省略...
}

(三)if 与 switch 对比

  • if 适用场景:条件为范围判断(如成绩 60 - 100 区间),或条件是表达式的情况 。
  • switch 适用场景:条件是具体离散值(如星期几、按钮固定文本)的判断 。
  • 转换关系:能用 switch 实现的判断,if 都能实现;但 if 能实现的复杂范围判断,switch 不一定能实现 。

三、循环控制语句

(一)while 语句【掌握】

先判断条件,条件为真则执行循环体,不满足则一次不执行。

javascript

运行

while (条件表达式) {
    循环体
}

示例:输出 1 - 10 数字

javascript

运行

var i = 1;
while (i <= 10) {
    console.log(i);
    i++;
}

(二)do...while 语句【了解】

先执行一次循环体,再判断条件,条件为真则继续循环,至少执行一次循环体。

javascript

运行

do {
    代码段
} while (条件表达式)

示例:至少执行一次的循环

javascript

运行

var i = 1;
do {
    i++; 
    console.log(i);
} while (i <= 10)

(三)for 语句【重要】

通过初始化、条件判断、更新变量三步,控制循环执行,格式清晰,适合已知循环次数场景。

javascript

运行

for (循环变量初始化表达式; 循环条件表达式; 更新循环变量表达式) {
    循环体
}

注意:循环变量可定义在 for 外;无更新变量易成死循环;循环条件中 ; 不可省略 。
示例 1:输出 5 个 div 标签

javascript

运行

for (var i = 0; i < 5; i++) {
    document.write('<div>1</div>')
}

示例 2:计算 1 - 100 累加和

javascript

运行

var sum = 0;
for (var i = 1; i <= 100; i++) {
    sum += i;
    if (i < 100) {
        document.write(i + '+');
    } else {
        document.write(i + '=' + sum);
    }
}
console.log(sum);

(四)for...in 语句【掌握】

遍历对象属性,变量保存属性名,常用于遍历对象或数组(遍历数组时变量为索引)。

javascript

运行

for (变量 in 对象) {
    代码段
}

示例:遍历数组中对象的属性

javascript

运行

var arr = [
    { "name": "Java编程思想", "price": 78.9 },
    { "name": "python入门宝典", "price": 59 }
];
for (var i = 0; i < arr.length; i++) {
    for (key in arr[i]) {
        console.log(arr[i][key]);
    }
}

四、跳转语句

(一)continue 语句【掌握】

用于循环中,跳过本次循环剩余代码,继续下一次循环判断。

javascript

运行

var iNum = 0; 
for (var i = 1; i < 10; i++) {
    if (i % 5 == 0) {
        continue;
    }
    iNum++;
}
alert(iNum);

(二)break 语句【掌握】

用于循环或 switch 中,退出循环或 switch,阻止后续执行。

javascript

运行

for (var i = 1; i < 10; i++) {
    if (i % 5 == 0) {
        break;
    }
    iNum++;
}
alert(iNum);
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐