Bootstrap

JavaScript三大流程控制语句

顺序结构

分支机构

if语句

JavaScript中的if语句是一种基本的条件语句,它允许你根据一个表达式的真假值来决定是否执行一段代码。以下是if语句的一些基本用法:

基本if语句

if (条件) {
    // 如果条件为真,则执行这里的代码
}

这里的条件可以是任何返回布尔值的表达式,比如比较运算符的结果(==, !=, ===, !==, <, >, <=, >=)或者逻辑运算符的结果。

if...else语句

if (条件) {
    // 如果条件为真,则执行这里的代码
} else {
    // 如果条件为假,则执行这里的代码
}

else语句提供了一个与if条件相反的执行路径。

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

if (条件1) {
    // 如果条件1为真,则执行这里的代码
} else if (条件2) {
    // 如果条件1为假且条件2为真,则执行这里的代码
} else {
    // 如果所有条件都不满足,则执行这里的代码
}

这种形式允许你根据多个条件进行判断,并且可以有多个else if语句。

示例

let score = 85;

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

注意事项

  • 条件表达式应该放在括号内。
  • JavaScript中的if语句不需要使用then关键字,这是其他一些语言(如Pascal)的要求。
  • 条件表达式的结果可以是任何可以被解释为布尔值的JavaScript表达式,包括逻辑运算符、比较运算符、三元运算符等。
  • 确保条件表达式的结果是一个布尔值,因为非布尔值可能会产生意外的结果。

if语句是控制程序流程的基本工具,通过它可以根据条件执行不同的代码路径。

三元

JavaScript中的三元运算符是一种简洁的条件表达式,它允许你在一行代码中进行条件判断并选择两个值中的一个。三元运算符的语法如下:

条件 ? 表达式1 : 表达式2;

  • 条件是一个返回布尔值的表达式。
  • 如果条件为真(true),则整个三元表达式的结果是表达式1的值。
  • 如果条件为假(false),则结果是表达式2的值。

示例

let score = 85;
let grade = score >= 90 ? 'A' : 'B';
console.log(grade); // 输出 'B',因为条件不满足

在这个例子中,如果score大于或等于90,grade将被赋值为'A',否则赋值为'B'

嵌套三元运算符

三元运算符可以嵌套使用,允许更复杂的条件判断:

let age = 18;
let message = age >= 18 ? '你已成年' : age >= 13 ? '你是青少年' : '你还是个孩子';
console.log(message); // 输出 '你已成年'

在这个例子中,首先判断age是否大于或等于18,如果是,则message'你已成年'。如果不是,再判断age是否大于或等于13,如果是,则message'你是青少年'。如果都不满足,message'你还是个孩子'

注意事项

  • 虽然三元运算符可以提高代码的简洁性,但过度使用或嵌套过深可能会使代码难以阅读。
  • 确保三元运算符的条件和表达式逻辑清晰,避免混淆。
  • 三元运算符的结果是一个值,可以赋给变量,也可以直接在表达式中使用。

三元运算符是JavaScript中处理简单条件逻辑的有用工具,可以使代码更加简洁。

switch

JavaScript中的switch语句是一种流程控制结构,它允许你基于不同的情况执行不同的代码块。switch语句对于多个条件分支的判断比多个if...else if...else语句更加清晰和高效。

基本语法

switch (表达式) {
    case 值1:
        // 条件1满足时执行的代码
        break;
    case 值2:
        // 条件2满足时执行的代码
        break;
    // ...
    default:
        // 如果没有匹配的case,执行这里的代码
}

  • 表达式switch语句中需要评估的值。
  • case后面跟着的是与表达式结果比较的值。
  • 如果表达式与某个case的值匹配,将执行该case下的代码块,直到遇到break语句。
  • break语句用于终止switch语句,防止执行后续的case代码块。
  • default是可选的,如果没有case匹配,将执行default代码块。

示例

let day = 3;

switch (day) {
    case 1:
        console.log("今天是周一");
        break;
    case 2:
        console.log("今天是周二");
        break;
    case 3:
        console.log("今天是周三");
        break;
    default:
        console.log("今天是其他日子");
}

注意事项

  • switch语句中的case值可以是任何JavaScript表达式,包括字符串、数字、对象等。
  • 每个case代码块的末尾应该有一个break语句,否则会执行到下一个case,这称为“fall through”现象。
  • 如果不需要执行任何操作,可以省略break,但这通常不是好的编程实践,因为它可能导致意外的行为。
  • default代码块是可选的,如果没有提供,并且没有case匹配,switch语句将不执行任何操作。

switch语句是处理多个条件分支的一种有效方式,特别是当有多个可能的值需要检查时,它可以使代码更加清晰和易于维护。

循环结构

while循环

JavaScript中的while循环是一种基本的循环结构,它允许你重复执行一段代码,直到给定的条件不再满足。while循环的基本语法如下:

while (条件) {
    // 循环体:只要条件为真,就重复执行这里的代码
}

  • 条件是一个表达式,它在每次循环开始前被评估。如果条件为真(true),循环体中的代码将被执行。如果条件为假(false),循环将终止,控制流将移动到while循环之后的代码。

示例

let count = 0;

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

在这个例子中,while循环将打印从0到4的数字,然后终止,因为count的值将达到5,使得条件count < 5不再满足。

注意事项

  • 确保循环条件最终会变为假,否则循环将变成无限循环。
  • 循环体中应该有改变条件的逻辑,否则很容易产生无限循环。
  • while循环是前测试循环(pre-test loop),意味着条件在每次迭代之前被测试。

扩展:do...while循环

do...while循环是while循环的一个变体,它至少执行一次循环体,然后再次测试条件:

do {
    // 循环体:至少执行一次,然后检查条件
} while (条件);

  • do...while循环是后测试循环(post-test loop),意味着循环体首先执行,然后才测试条件。
  • 如果条件为真,循环将继续执行;如果条件为假,循环将终止。

示例

let count = 0;

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

这个例子与前面的while循环示例效果相同,但do...while循环确保了即使条件最初为假,循环体也会执行一次。

whiledo...while循环都是JavaScript中处理需要重复执行代码块的常用工具,选择使用哪一个取决于你的具体需求。

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;