• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

第二章.循环语句

一、if单分支语句循环
1.语法结构:
        if(条件表达式){  
          // 执行语句  
      }
2. 执行思路:条件表达式里面的结果为真(true)就执行花括号里面的语句,如果条件表达式为 假(false)不执行花括号里面的语句
案列:
     // 弹出prompt 输入框,用户输入年龄,程序把这 个值取过来保存到变量中     使用if语句来判断年龄,如果年龄大于18就执行if大括号里面的输 出语句  
    var age=prompt("请输入你的年龄:");
     if(age>=18){  
      alert("这是我写的js");
  }
流程图:

 

 

二、if-else双分支语句
  // 1.语法结构 if如果 else否则
        if (条件表达式) {
            // 执行语句1
        } else {
            // 执行语句2
        }
        // 2.执行思路 如果表达式结果为真 那么执行语句1 否则执行语句2
     案列:
 
        var age = prompt('请输入你的年龄:');
        if (age >= 18) {
            alert('我想带你去看人间烟火');
        } else {
            alert('但是需要我们一起去完成');
        }
 
        // 4.总结:if里面的语句1 和else里面的语句2最终只能有一个语句被执行 2选一
        // 5.else后面跟大括号
流程图:
 
三、if-else-if多分支语句循环
   // 1.多分支语句 就是利用多个条件来选择不同的语句执行得到不同的结果 多选1的过程
     // 2. if else if语句是多分支语句 I
     // 3.语法规范
     if(条件表达式1){
        // 语句1
     } else if(条件表达式2){
       //语句2
     }else if(条件表达式3){
       //语句3
     }else{
        // 最后的语句
     }

    //  4.执行思路
    // 如果里面条件表达式1 满足就执行 语句1执行完毕后,退出整个if分支语句
    // 如果条件表达式1不满足,则判断条件表达式2 满足的话就执行语句2 以此类推
    // 5.注意点
    // (1)多分支语句还是多选一 最后只能有一个女语句执行
    // (2)else if里面的条件理论上是可以任意多个的
    // (3)else if中间有一个空格
 
案列:
var score=prompt('请输入你的分数');
        if(score>90){
            alert('你真厉害');
        }else if(score>=80){
            alert('很厉害');
        }else  if(score>=60){
            alert('加油');
        }else{
            alert('你要加油哦');
        }
流程图:

 

四、for循环语句
        //1. for 重复执行某些代码,通常跟计数有关
       // 2.语法:
          for(初始变量条件;循环条件表达式;操作表达式){
          // 循环体
      }
        3.初始化变量: 就是用var声明的一个普通变量,通常用作为计数器使用
        4.条件表达式:就是用来决定每一次循环是否被执行,就是终止的条件
        5.操作表达式:是每次循环最后执行的代码经常用于我们计数器变量进行更新(递增或者递减)

        // 案列1:
        //打印100份数卷
        /* for(var i=1;i<=100;i++){
            console.log('打印'+i+'份试卷');
        } */

        // 运行顺序
        // 1.首先执行里面的计数器变量 var i=1 但是这句话在for里面只执行一次/
        // 2.去i<=100 来判断是否满足条件,如果满足条件,就去执行循环体,如果不满足条件就推出循环体
        // 3.最后去执行i++ i++是单独写的代码 递增 第一轮结束
        // 4.接着去执行 i<=100 如果满足条件,就去执行循环体,不满足就退出循环体 第二轮结束
       
        // 案列2:
        //我们可以让用户控制输入的次数
        var num=prompt('请你输入次数');
        for(var i = 1; i <num;i++){
            console.log('你好先生');
        }
 
     
       //案列3:
       //for 循环可以重复执行不同的代码 因为我们有计数器变量 i 的存在每次循环都会变化
        //1.想要输出1个人 1-100岁
        for (var i = 1; i <= 100; i++) {
            console.log('这个人今年' + i + '岁了');
        }

        //案列4:
        for (var i = 1; i <= 100; i++) {
            if (i == 1) {
                console.log('这个人已经1岁了,他出生了');
            } else if (i == 100) {
                console.log('这个人已近100岁了,他死了');
            } else {
                console.log('这个人今年' + i + '岁了');
            }
        }

        //案列5:
        //求1-100之间的整数累加和
        var sum = 0;
        for (var i = 1; i <= 100; i++) {
            sum += i;
        }
        console.log(sum);

        // 案列6:
        // 求1-100之间所有数的平均值 分析思路:需要一个sum和变量 还需要一个average平局数变量
        var sum = 0;
        var average = 0;
        for (var i = 1; i <= 100; i++) {
            sum = sum + i //sum+=i;
        }
        average = sum / 100;
        console.log(average)
         
 
         //案列:7:
        // 求1-100之间所有偶数和奇数的和  
        var even = 0;
        var odd = 0;
        for (var i = 1; i <= 100; i++) {
            if (i % 2 == 0) {
                even = even + i;
            } else {
                odd = odd + i;
            }
        }
        console.log('1-100之间所有偶数和' + even);
        console.log('1-100之间所有奇数和' + odd);

         //案列8:
        // 求1-100之间所有能被3整除的数字的和
        var integer=0;
        for (var i = 1; i <= 100; i++) {
            if (i % 3 == 0) {
              integer=integer+i; //integer+=i;
            }
        }
        console.log('1-100之间所有能被三整除的数字'+integer);


         //案列9:
         /*求弹出输入框输入总的班级人数(num)
        依次输入学生的成绩(保存起来score),此时我们需要用到
        for循环, 弹出的次数跟班级总人数有关系条件表达式i <= num
        进行业务处理:计算成绩。 先求总成绩( sum) ,之后求平均成绩( average)
        弹出结果 */
        var num=prompt("请输入班级总人数");
        var sum=0;//定义和的变量
        var average=0;//定义平均数的变量
        for(var i=1;i<=num;i++){
          var score=prompt("请输入第"+i+"个学生的成绩");
          sum=sum+parseFloat(score);
        }
        average=sum/num;
        alert("班级的总成绩是:"+sum);
        alert("班级的平均分是:"+average);
流程图:

 

 

五、双重for循环
 //1. for 重复执行某些代码,通常跟计数有关
       //  外层循环执行一遍,内层循环全部执行一次
       //  外层循环表示行数,内层循环表示列数
       // 2.语法结构
          for(初始变量条件1;循环条件表达式1;操作表达式1){
              // 循环体1
          for(初始变量条件2;循环条件表达式2;操作表达式2){
             // 循环体2
          }
       }
 
     //案列1:
     //  地球公转自转
        for(var year=2000;year<=2022;year++){
            console.log("当前的年份:"+year)
            for(var day=1;day<=365;day++){
                console.log(year+"年,地球自转了"+day+"圈,有过了一天....");
            }
            console.log("地球公转了1圈......");
        }
       
 
         //案列2:
        // 乘法表
        // i表示的是行数,j表示的是咧数
        for (var i = 1; i <= 9; i++) {
            for (var j = 1; j <= i; j++) {
                document.write(j + "*" + i + "=" + i * j + " ");
            }
            document.write("<br/>");
        }
       
           //案列3:
        // 打印矩形
         for( var i=1;i<=5;i++){
            for(var j=1;j<=5;j++){
                document.write("@");
            }
            document.write("<br/>")
        }
       
           //案列4:
        // 打印平行四边形
         // 外层循环执行一遍,内层循环全部执行一次
         //  外层循环表示行数,内层循环表示列数
        for (var i = 1; i <=5; i++) {
            for (var j = 5 - i; j >= 1; j--) {
                document.write("&nbsp;");
            }
            // 打印右边星号
            for (var k = 0; k < 5; k++) {
                document.write("*");
            }
            document.write("<br/>");
        }
        
          //案列5:
        // 打印三角形
         for (var i = 1; i <= 8; i++) {
            for (var j = 8 - i; j >= 1; j--) {
                document.write("@");
            }
            for (var k = 0; k < 3 * i - 1; k++) {
                document.write(i);
            }
            document.write("<br/>");
        }
 流程图:

 

 

六、while循环语句
      //1. while循环语法结构 while 当...的时候
             while(条件表达式){
            //循环体
        }
      // 2.执行思路 当条件表达式为true 则执行循环体 否则退出
     // 3.里面有计数器 初始化变量
     // 4.里面应该也有操作数表达式 完成计数器的更新 防止死循环
 
        //案列1:
        var num=1;
        while (num <=100){
            console.log('你好');
            num++;
        }
    
          //案列2:
        // 弹出一个提示框, 你爱我吗? 如果输入我爱你,就提示结束,否则,一直询问.
            var message=prompt("你爱我吗");
            while(message!=='我爱你'){
                message=prompt("你爱我吗");
            }
            alert('我也爱你!');
流程图:

 

 

七、do-while循环语句
      // 1.do while 循环 语法结构
             do{
            // 循环体
        }while(条件表达式)

         //2.执行思路 跟while不同的地方在于 do while 先执行一次循环体
          在判断条件表达式 如果条件表达式为真继续执行循环体 否则退出循环
        // 3.do while 至少执行一次循环体
          
         //案列1:
        // 打印100句how are you
        // 定义计数器
        var i=1;
        do{
            console.log("how are you");
            i++;
        }while(i<=100);
       
       
        //案列2:
        // 印人的一生,从1岁到100岁
        // 定义计数器
        var i=1;
        do{
            console.log("这个人几年"+i+"岁了");
            i++;
        }while(i<=100);

         //案列3:
        // 算1-100之间的所有整数的和
         var sum=0;
         var i=1;
         do {
            sum += i;
            i++;
         }while(i<=100);
         console.log(sum);
 
         // 案列4:
        // 弹出一个提示框,你爱我吗 如果输进入我爱你,就提示结束,否则一直询问
         do{
            var message=prompt("你爱我?");
         }while(message!=="我爱你");
         alert("我也爱你");  
流程图:

 

 

 

八、continue循环语句
 //1.continue遇到continue表示跳过本次循环,(continue后面的语句)继续执行下一次循环
    //案列1:
        // 打印5份试卷
        // continue 跳出本次循环,继续下一次循环
        for (var i = 1; i <= 5; i++) {
            if (i == 3) {
                continue;//只要遇见continue就退出本次循环 直接跳到i++
            }
            console.log('我正在打印' + i + '几份试卷');
        }

         // 案列2:
        // 求1-100之间,除了能被7整除之外的整数和
        var sum = 0;
        for (var i = 1; i <= 100; i++) {
            if (i % 7 == 0) {
                continue;
            }
            sum += i;
        }
        console.log(sum);
       
        // 案列3:
           for (var i = 1; i < 10; i++) {
                console.log('第${i}次');
                if (i === 8) {
                    continue;
                }
                console.log('第几次');
            } */
           

          // 案列4:
                var count = 0;
                var rate=0;
                var n = 0;
                for (var i = 1; i <= n; i++) {
                    var score = parseInt(prompt("请输第" + i + "门成绩"));
                    if (score >= 80) {
                        continue;
                    }
                    count++;
                }
                rate = count / n* 100 + "%";
                console.log(count, rate);
   
         // 案列5:
        var sum = 0;
        for (var i = 1; i <= 10; i++) {
            if (i % 2 == 0) {
                sum += i;
                continue;

            }
        }
        console.log(sum);

 

九、break循环语句
     // 1.break 退出整个循环条件
     // 2. break;只能在switch语句块里面,或者在循环体里面
     // 3.break;退出循环体,执行循环后面的代码
           // 案列1:
            for(var  i=1;i<=5;i++){
            if(i==3){
             break;//退出整个循环条件
            }
            console.log('我正在打印第'+i+'份试卷');
        }
       
         //案列2:
         for (var i = 1; i <= 10; i++) {
            console.log("跑了第" + i + "圈");
            if (i === 8) {
                console.log("不想跑了");
                break;
            }
        }
        console.log("后续操作....");
       
     // 案列3:
       var sum = 0;
        var avg = 0;
        for (var i = 1; i <= 5; i++) {
            var score = parseInt(prompt("请输第" + i + "门成绩"));
            if (i < 0) {
                console.log("分数录入错误");
                break;
            }
            sun += i;
        }
        if (i > 0) {
            avg = sum / 5;
            console.log(avg, sum);

        }
       
     // 案列4:
      var sum=0;
        for(var i=1;i<=10;i++){                      
            sum+=i;
            if(sum>20){
                console.log("1-10和大于20的数:"+i);
                break;
            }
        }  
 
 
十、Switch循环语句
// 语法:
 switch(表达式){
    case 值1:
    ​                            语句体;
    ​                            break;
    case 值2:
    ​                            语句体;
    ​                            break;
    ……
    default:
    ​                            语句体n+1;
    ​                            break;
    }
    执行思路:
    首先计算出表达式的值
    其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会束
    最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
 
 

 

 

posted on 2022-10-04 21:12  青&&风  阅读(42)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3