JavaScript中流程控制语句的基本使用

#流程控制语句

流程控制语句分类

  • 顺序结构:代码从上到下去执行
  • 分支结构:if if-else switch
  • 循环结构:for while do-while

1.分支语句

1.1if语句

  • 语法:if(条件){ 条件成立时执行代码 }

  • 双分支:if(条件){ 条件成立时执行代码 }else{ 条件不成立时执行代码 }

  • if语句后边不放{},只能控制紧跟着的第一条语句

  • if语句的条件不仅是比较,还可以是值,为真值

    // 1.if
    // 如果有100块,去买蜜雪冰城,麻辣香锅
    var money = 200;
    if(money > 100){
        console.log("买蜜雪冰城");
        console.log("买麻辣香锅");
    }
    
    // 2.if语句后边不放{},只能控制紧跟着的第一条语句
    var money = 100;
    if(money > 200)
        console.log("买蜜雪冰城");
    
    console.log("买麻辣香锅");
    console.log("买雪糕");
    
    // 3.双分支:if(条件){ 条件成立时执行代码 }else{ 条件不成立时执行代码 }
    var money = 1000000;
    if(money > 10000){
        console.log("买个手机");
        console.log("买个电脑");
        console.log("买个平板");
    }else{
        console.log("好好学习");
        console.log("努力挣钱");
    }
    
    // 4.if语句的条件不仅仅是比较,还可以是值,为真值
    // 假值:0 "" null undefined NaN false
    if("abc"){
        console.log("这是1");
        console.log("这是数值");
    }
    
  • if语句的多分支

    • 语法:if(条件1){ 条件1成立时执行的代码 }else if(条件2){ 条件2成立时执行的代码 }else if(){}…
    • 把不容易满足的条件放在前边,可以减少判断次数
    var n = 155;
    if(n >= 90){
        console.log("非常棒");
    }else if(80 <= n && n < 90){
        // 80-90
        console.log("真好");
    }else if(70 <= n && n < 80){
        // 70-80
        console.log("还不错");
    }else if(60 <= n && n < 70){
        // 60-70
        console.log("及格了");
    }else{
        // 否则
        console.log("不及格 下次努力");
    }
    
  • if语句的嵌套

    if语句可以套if语句

1.2 switch语句

  • break的作用:防止穿透,如果不加的话,丛匹配到的那一项开始,后续条件不再匹配直接执行
/*			switch(匹配项){
                case 值1: 匹配到值1时所执行的代码; break;
                case 值2: 匹配到值2时所执行的代码; break;
                ...
                default: 以上都没有匹配到执行的代码;
            }
*/
var str = "华妃";
switch(str){
    case "皇后": console.log("今天去皇后那"); break;
    case "华妃": console.log("今天去华妃那"); break;
    case "甄嬛": console.log("今天去甄嬛那"); break;
    case "眉姐姐": console.log("今天去眉姐姐那"); break;

        // 默认项
    default: console.log("今天哪里也不去");
}

使用场景:

​ 如果匹配的是简单的字符或者数字,使用switch会更简洁些

​ 如果出现的情况比较复杂,用if语句会更方便些

2.循环语句

2.1 for循环

  • 语法:for(表达式一;表达式二;表达式三){ 循环体 }

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

  • 注意:循环条件一定要保证能让循环结束,否则陷入死循环

  • 重复执行的代码 有规律的变化

  • 执行过程

    1.初始化循环变量   var i = 1
    2.判断循环条件      i <= 5
         条件成立时执行下一步
         条件不成立循环结束
    3.执行循环体
    4.更新循环变量  i++
    5.回到步骤2
    
/* 重复执行的代码 有规律的变化 */
// 求1-100的和
var sum = 0; // 存放和
for(var i = 1; i <= 100; i++){
    console.log(i); // 1 2 3 ... 100
    // 每次拿到的数都往sum上加
    // sum = sum + i; // 累加
    sum += i;
}
console.log(sum,'和'); // 5050
  • for循环操作标签

    // 有规律的变化
    console.log(oLi.length, '元素集合的长度');
    for(var i = 0; i < oLi.length; i++){
        console.log(i); // 0 1 2 3 4
        oLi[i].onclick = function(){
            console.log("被点击了");
        }
    }
    
  • 动态渲染数据

    var oUl = document.getElementsByTagName('ul')[0];
    var list = ["上海6月见实现社会面清零",
                "大别山革命老区",
                "先救我妹妹",  
                "老年人新冠疫苗接种不要等"]
    // 动态渲染数据
    // 根据数据的长度来渲染标签
    for(var i = 0; i < list.length; i++){
        console.log(i); // 0 1 2 3
        console.log(list[i]); // 取值
    
        // 生成对应个数的li标签
        oUl.innerHTML += "<li>" + list[i] + "</li>";
    }
    

2.2 while和do-while

while:满足某个条件,执行某件事情
	初始化循环变量
	while(循环条件){
		// 循环体
		// 更新循环变量
	}
do-while:先执行一次循环体,之后再判断循环条件
	初始化循环变量
	do{
		// 循环体
		// 更新循环变量
	}while(循环条件)
// 初始化循环变量
var j = 10;
while(j <= 5){
    // 循环体
    console.log("while-------" + j);

    // 更新循环变量
    j++;
}

// 初始化循环变量
var k = 10;
do{
    // 循环体
    console.log('do-while--------'+k);

    // 更新循环变量
    k++;
}while(k <= 5)
  • while和do-while的区别:

    • do-while先执行一次循环体,之后再判断循环条件,循环体至少会执行一次
    • while满足某个条件,执行某件事情
  • for和while的使用场景

    • for循环适用于开始条件和结束条件都比较明确时使用
    • while循环适用于循环条件比较明确时使用

3.break和continue

都是在循环中使用,

break是直接终止循环

continue是跳过本轮循环,后续循环继续执行

for(var i = 1; i <= 10; i++){
    if(i == 5){
        // console.log("不小心摔断腿了");
        // break; // 终止循环

        console.log("有点累 下来歇一会");
        continue; // 跳过本轮循环,后续循环继续执行
    }

    console.log("这是第" + i + "圈");
}

4.for循环的嵌套

for循环的嵌套/双重for循环:在for循环中嵌套一个for循环

外循环执行一轮,内循环执行一整圈

for(初始化外循环变量; 外循环条件;外循环变量的更新){
	for(初始化内循环变量; 内循环条件;内循环变量的更新){}
}
  • 操作有规律的图形

    • 外循环控制行
    • 内循环控制列
    // 外循环控制行 i
    for(var i = 1; i<=5; i++){
        // 每一行都要生成列  内循环的条件:列<=行
        // 内循环控制列 j
        for(var j = 1; j <= i; j++){
            document.write("*")
        }
        document.write("<br>");
    }
    
  • 动态生成标签

    • 外循环控制父元素
    • 内循环控制子元素
    // 有几个ul进行多少次渲染 arr[0] oUl[0]
    // 外循环控制父元素 ul
    for(var k = 0; k < oUl.length; k++){
        // 根据数据的长度动态生成标签li
        var list = arr[k]; // 获取对应的数据
    
        // 内循环控制子元素 li
        for(var i = 0; i < list.length; i++){
            console.log(list[i]);
            oUl[k].innerHTML += "<li>"+ list[i] +"</li>"; // 累加
        }
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我爱RMB

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值