JavaScript—流程控制(分支)

流程控制

在程序执行的过程中,各条代码的执行顺序对程序的结果是有直接影响的。通常需要通过控制代码的执行顺序来实现我们要完成的功能。

简单理解:流程控制就是控制我们的代码按照什么结构顺序来执行。

流程控制主要有三种结构,分别是顺序结构、分支结构和循环结构,这三种结构代表三种代码执行顺序。

顺序流程控制

顺序结构是程序中最简单、最基本的流程控制,它没有特定的语法结构,程序会按照代码的先后顺序,依次执行。

分支流程控制

分支流程控制if语句

由上到下执行代码的过程中,根据不同的条件,执行不同的路径代码,从而得到不同的结果。

分支流程控制if语句

var a = prompt('输入a的值:');
    if (a > 2/*条件表达式*/) {
        alert('a大于2');//条件成立执行的代码
    }
多分支
 var a = prompt('输入a的值:');
    if (a > 2/*条件表达式1*/) {
        alert('a大于2');//条件成立执行的代码
    }
    else if (a < 2/*条件表达式2*/) {
        alert('a不大于2');//条件成立执行的代码
    }
    else if (a == 2/*条件表达式3*/) {
        alert('a等于2');//条件成立执行的代码
    }
    else {
        alert('Eorro');//最后的语句
    }

三元表达式

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

如果条件表达式为真返回表达式1,反之,返回表达式2

三元表达式
 var a = 1;
    var result = a > 2 ? 'yes' : 'no';
    console.log(result);

数字补0(常用于倒计时)

  1. 用户输入0~59的数字。
  2. 如果数字小于10则在该数字前补0否则不操作。
  3. 用一个变量存储这个返回值后输出。
时间补零
 var time = prompt('输入一个数');
    var result = time < 10 ? '0' + time : time;
    console.log(result);

分支流程控制switch语句

switch语句是多分支语句,用于基于不同的条件来执行不同的代码。当要针对变量设置一系列特定值时,优先考虑使用。

switch语句
 switch (2/*表达式*/) {

        case 1:    // 常量表达式1
            console.log('这是1'); break;//语句1;
        case 2:           //常量表达式2:
            console.log('这是2'); break;//语句2
        //case 可添加语句n个
        default: console.log('没有匹配的值');//执行最后的语句
    }

在每一case语句之后增加break 语句,可以让每一次执行之后均可跳出switch语句,避免输出其他结果。

switch和ifelse if的区别

  1. 一般情况下两者可以互相替换。
  2. switch……case通常用于所判断的值比较确定的情况,而if……else……更灵活,常用于范围判断。
  3. switch语句进行条件判断直接执行程序的条件语句,效率更高,而if……else语句有多少种条件就要判断多少次。
  4. 分支表较少时,if……else语句执行效率更高,反之,switch效率更高。

循环流程控制

循环的目的可以重复执行某些语句。

for循环

重复执行某些代码通常和计数有关

for循环
 for (var i = 1/*初始化变量*/; i <= 100/*条件表达式*/; i++/*操作表达式*/) {
        console.log('example');//执行语句
    }
for循环执行不同代码
 for (var i = 1; i <= 100; i++) {
        if (i == 2) {
            console.log('现在i=1');
        }
        else if (i == 100) {
            console.log('现在i=100');
        }
        else {
            console.log('现在i不等于1也不等于100');
        }
    }
for循环求和
 var sum = 0;
    for (var i = 0; i <= 100; i++) {
        sum = sum + i;
    }
    console.log('1到100的和为' + sum);
for循环简单的使用
     var sum = 0;
    var n = prompt('请输入个数');
    for (var i = 1; i <= n; i++) {
        var num = prompt('输入数字');
        sum = sum + parseFloat(num);
    }
    console.log('这几个数字和为' + parseInt(sum));
    var average = sum / parseFloat(n);
    console.log('这几个数平均值为' + average);
双for打印n行n列
 var n = prompt('输入你需要输出的*个数');
    var str = '';
    for (var i = 1; i <= n; i++) {
        for (var j = 1; j <= n; j++) {
            str = str + '*';
        }
        str = str + '\n';
    }
    console.log(str);
双for循环打印倒三角
var n = prompt('输入你需要输出的*个数');
    var str = '';
    for (var n; n >= 0; n--) {
        for (var i = 1; i <= n; i++) {
            str = str + '*';
        }
        str = str + '\n';
    }
    console.log(str);
乘法口诀表
 var n = 9;
    var str = '';
    for (var i = 1; i <= n; i++) {
        for (var j = 1; j <= i; j++) {
            str += j + '×' + i + '=' + i * j + '\t';
        }
        str += '\n';
    }
    console.log(str);

while循环

执行思路:当条件表达式为真(true)时执行循环体。否则退出循环。

while循环
 var i = 1;
    while (i <= 10/*条件表达式*/) {
        console.log('第' + i + '遍输出循环体');  //循环体
        i++;    //操作表达式
    }
while循环
 var exit = prompt('输入“00”退出提示窗口');
    while (exit !== '00') {
        exit = prompt('输入“00”退出提示窗口');
    }
    alert('退出成功');

do……while循环

执行思路,与while不同的是do……while要先执行一遍循环体。再判断条件,其它执行逻辑与while一致。

do……while循环
var i = 0;
    do {
        console.log('第' + i + '次输出');//循环体
        i++;
    } while (i <= 5/*条件表达式*/)

continue关键字

用于跳出本次循环,继续下一次循环。

continue跳出
for (var i = 0; i <= 5; i++) {
        if (i == 3 || i == 4) {
            continue;
        }
        console.log('这个数字是' + i);
    }

break关键字

用于跳出整个循环(循环结束)。

break中断
 or (var i = 1; i <= 10; i++) {
        if (i == 3) {
            break;
        }
        console.log('这个题做错了' + i + '遍');
    }
    console.log('已经错了' + i + '遍不能做了');

 

posted @ 2023-09-01 19:21  Dr丶云幕  阅读(7)  评论(0编辑  收藏  举报