js for循环_js基础流程控制

0889f898a2a80a1abe49f63d7943d8bf.png概念

默认情况下,代码是从上到下执行的

代码的执行会根据实际情况进行选择性执行

控制执行流程的

0889f898a2a80a1abe49f63d7943d8bf.png条件判断

boolean类型,true 和false

基础语法:

    (1)

        if(变量或者表达式){

             语句1;

        }

    当变量或者表达式的结果是true(不是六个假值)的时候,执行语句1;

    (2)

        if(变量或者表达式){

            语句1;

        }else{

            语句2;

        }

    当变量或者表达式的结果是true的时候,执行语句1;

    否则执行语句2

    6个假值:

        0 NaN false null undefined ""

    (3)

        if(变量或者表达式1){

            语句1;

        }else if(变量或者表达式2){

            语句2;

        }...{

        }else{

        }

    当变量和表达式1的值不为6个假值的时候,执行语句1;

    否则,判断变量和表达式2的值 ,如果不为6个假值执行语句2

    否则执行else

    注意:

        else if 和else都不是必须的

小例子

    身高大于170小于180的可以报名参赛否则不满足条件

    var height=prompt("请输入你的身高");

    if (height>170 && height<180) {

        //满足条件的时候要执行的js语句

        alert("恭喜你!!!");

        console.log("可以报名参赛");

    }else{

        console.log("身高不满足条件")

    }

    var num="";

    if (num) {

        console.log(num);

    }else{

        console.log("num等于假值了")

    }

    // 当flag为什么值的时候可以弹出"ok":flag不为6个假值的

    /*if(flag){

        alert("ok");

    }*/

小例子

    当score>90的时候  A

        score>80         B

        >60                 C

        <60                 D

    var score=prompt("请输入分数");

    if (score>90) {

        alert("你的等级是A");

    }else if(score>80){

        alert("你的等级是B");

    }else if(score>60){

        alert("你的等级是C");

    }else{

        alert("你的等级是D");

    }

0889f898a2a80a1abe49f63d7943d8bf.pngswitch语句

switch:开关语句

    条件语句

    语法:

        switch(变量或者表达式){

            case 值1:

                语句1;

            case 值2:

                语句2;

                ....

            case 值n:

                语句n;

        }

    当变量或者表达式的值等于值1则执行语句1

    break:跳出switch语句,防止下面的语句运行

    default:所有的值都不满足的时候,执行default

小例子

特价菜:

    星期一  "酸辣土豆丝"

        2   "西红柿鸡蛋"

        3  "红烧肉"

        4  "土豆片"

        5  "干煸豆角"

        6   "锅包肉"

        7   "焗南瓜"

    var day=18;

    switch(day){

        case 1:

            console.log("酸辣土豆丝1");

            break;

        case 2:

            console.log("酸辣土豆丝2");

            break;

        case 3:

            console.log("酸辣土豆丝3");

            break;

        case 4:

            console.log("酸辣土豆丝4");

            break;

        case 5:

            console.log("酸辣土豆丝5");

            break;

        case 6:

            console.log("酸辣土豆丝6");

            break;

        case 7:

            console.log("酸辣土豆丝7");

            break;

        default:

            console.log("输入错误");

    }

0889f898a2a80a1abe49f63d7943d8bf.png循环-for

语法:

    for(初始值;结束条件;增量){

        js语句;

    }

执行过程:

    (1)执行初始值,并且只执行一次

    (2)执行结束条件,如果条件成立,执行js语句

        条件不成立,跳出for循环

    (3)条件成立,执行js语句,执行增量;执行完增量,开始步骤(2)

小例子

    打印1到100

    for(var j=1;j<=100;j++){

        console.log(j);

    }

小例子

    打印100以内的奇数   

    for(var i=1;i<100;i+=2){

        console.log(i);

    }

    第二种方法

    for(var m=1;m<100;m++){

        if (m%2!=0) {

            console.log(m);

        }

    }

小例子

    //添加循环次数的判断

    var num1=0;

    for(var i=1;i<100;i+=2){

        num1++;

        console.log(i);

    }

    console.log("第一个for循环的次数为"+num1);//50

    var num2=0;

    for(var m=1;m<100;m++){

        num2++;

        if (m%2!=0) {

            console.log(m);

        }

    }

    console.log("第2个for循环的次数为"+num2);//99

小例子

    计算1到10的和:

        1+2+3+4+5+6+7+8+9+10

    var sum=0;

    for(var i=1;i<=10;i++){

        console.log(i);

        //每次将i的值家到sum的身上

        sum+=i;//sum=sum+1=1  sum=sum+2=1+2=3    sum=3+3=6

    }

    console.log(sum);

小作业

    求1*2*3*4*5*6*7的积 (7的阶乘)

    求100以内的偶数的和

    求1*3*9*27*81的积

单循环 双重循环 三层循环

上面我们写的都是单层循环

实现99乘法表

    按照之前的思路就是单层循环这样一行一行实现

     //第5行

        for(var i=1;i<6;i++){

            document.write(5+"*"+i+"="+5*i);

            document.write(" ")

        }

    //第6行

        document.write("
");

        for(var i=1;i<7;i++){

            document.write(6+"*"+i+"="+6*i);

            document.write(" ")

        }

    //第7行

        document.write("
");

        for(var i=1;i<8;i++){

            document.write(7+"*"+i+"="+7*i);

            document.write(" ")

        }

    //第八行

        document.write("
");

        for(var i=1;i<9;i++){

            document.write(8+"*"+i+"="+8*i);

            document.write(" ")

        }

    //第九行

        document.write("
");

        for(var i=1;i<10;i++){

            document.write(9+"*"+i+"="+9*i);

            document.write(" ")

        }

    双重循环实现

    for(var j=1;j<=9;j++){

        var n=j;

        for(var i=1;i<n+1;i++){

            document.write(n+"*"+i+"="+n*i);

            document.write(" ")

        }

        document.write("
");

    }

    实现页面展示效果

9b3cc01ccc0a82966b7f153d1629635a.png

    解析

        第一层循环n代表每行,总共9行

        第二层循环i代表每行中有几个被乘的数n+1这里为什么屙屎n+1是因为我们在循环中写的是i

    如果不是太理解,可以自己尝试一下

    for(var i=0;i<3;i++){

        for(var j=10;j<15;j++){

            //js语句

            console.log(j);

        }

    }

    第一轮 i=0

        执行内部循环 j=10 ,j<15成立,执行js语句,打印j=10  j++

            j=11                         11    j++

            j=12                         12    j++

            j=13                          13   j++

            j=14                         14    j++

            j=15 j<15不满足条件,退出内部循环    i++

    第二轮 i=1;

        执行内部循环:

            j=10 ,j<15成立,执行js语句,打印j=10 j++

            j=11                                     11  j++

            j=12                                     12  j++

            j=13                                     13  j++

            j=14                                     14   j++

            j=15 j<15不满足条件,退出内部循环    i++

    第二轮 i=2;

        执行内部循环:

            j=10 ,j<15成立,执行js语句,打印j=10  j++

            j=11                                     11   j++

            j=12                                     12   j++

            j=13                                     13   j++

            j=14                                     14   j++

            j=15 j<15不满足条件,退出内部循环    i++

    i=3,退出外层循环,双重for循环结束                

    内部循环执行结束才会执行外部循环  

阶乘(双重循环)

    n!=1*2*3*4*5*..*n

    5!=1*2*3*4*5

    求1!+2!+3!*4!+5!

       1+2+6+24+120=153

    var sum=0;

    for(var i=1;i<=5;i++){

        //sum+=i的阶乘

        var result=1;

        for(var j=1;j<=i;j++){

            result*=j;

        }

        //console.log(result);//result就是i的阶乘

        sum+=result;

    }

    console.log(sum);

阶乘之和(双重循环)

    求:1!+2!+3!+4!+5!

    分析:

        (1)求和运算 1+2+3+4+5  for循环

        (2)每一项是阶乘        for循环

            5!=1*2*3*4*5 

    var sum=0;

    for(var i=1;i<=5;i++){

        console.log(i);

        //计算i的阶乘

        //阶乘

        var n=i;

        var result=1;

        for(var j=1;j<=n;j++){

            console.log(j);

            result*=j;//将j累乘到sum上面

        }

        //for循环执行结束,得到的是n的阶乘

        console.log(result);

        sum+=result;//将i的值累加到sum上面

    }

    console.log(sum);//153

    分析代码:

        第一轮:

            j=1   进入内层循环

                i=1,i<=j成立  result=1*1=1   sum=0+1=1

        第二轮

            j=2; 进入内层循环

                result=1,

                i=1 i<=2  result=1*1 i++

                i=2 i<=2  result=1*1*2 i++

                i=3 i<=2不成立,退出循环 j++

            sum+=1*1*2

        第三轮:

            j=3;j<=5成立,进入内层循环

                result=1,

                i=1 i<=3  result=1*1 i++

                i=2 i<=3  result=1*1*2 i++

                i=3 i<=3   result=1*1*2*3  i++

                i=4 i<=3不成立,退出循环 j++

            sum+=1*1*2*3 

0889f898a2a80a1abe49f63d7943d8bf.pngwhile循环

while循环:

    while(变量或者表达式){

        js语句

    }

    当变量或者表达式的值为true的时候,执行js语句

    当变量或者表达式的值为false的时候,退出while循环

    必须有结束条件

    do{

        js语句

    }while(条件)

    (1)执行js语句

    (2)当变量或者表达式的值为true的时候,执行js语句

        当变量或者表达式的值为false的时候,退出while循环

        必须有结束条件

区别:

    do-while无论条件是否成立,至少执行一次

while循环和for循环没有本质的区别

var i=16;

while(i<15){

    console.log(i);

    i+=3;

}

0889f898a2a80a1abe49f63d7943d8bf.pngfor和while

while循环更适用于循环次不确定的情况

0889f898a2a80a1abe49f63d7943d8bf.pngbrock的使用

两个关键字:

    break和continue

    break是跳出for循环,整个for循环结束

    continue是跳出本轮循环,继续下一轮的循环

for(var i=0;i<3;i++){

    for(var j=0;j<5;j++){

        if (j==2) {

            break;

        }

    }

    console.log("========="+i);

}

打印结果

9ba5e132c777b838514e20dbca1d5e96.png

0889f898a2a80a1abe49f63d7943d8bf.pngfor in语句

for in语句:

    主要是用来访问对象的,因为对象的属性的长度是无法获取的

    简单的认识对象

    arr.length获取数组的长度

var  arr=[10,20,30,40,50];

for(var i=0;i<arr.length;i++){

    console.log(arr[i]);

}

//for in获取数组的内容

for(var j in arr){

    console.log(j);//下标

    console.log(arr[j]);

}

var stu=new Object();//创建了 一个对象

     stu.name="森";

     stu.age="16";

//可以访问对象的属性

// console.log(stu.name);

//获取所有的属性

console.log(stu.length);

for(var m in stu){

    console.log(m);

    console.log(stu[m])

}

0889f898a2a80a1abe49f63d7943d8bf.png标签语句

looper:for(var i=0;i<5;i++){

    console.log(i);

    for(var j=0;j<10;j++){

        if (j==5) {

            break looper;//break的looper的内容,跳出外层的循环

        }

    }             

}

// 标签 start 可以被之后的 break 或 continue 语句引用

0889f898a2a80a1abe49f63d7943d8bf.png排序

// 对x,y,z从大到小排序

// 先假设x>y>z

var box;

if (x<y) {

    // 交换x和y的位置

    box=x;

    x=y;

    y=box;

}

if(x<z){

    box=x;

    x=z;

    z=box

}

if(y<z){

    box=y;

    y=z;

    z=box

}

console.log(x,y,z)

结束语

    记住流程控制的使用,多多练习才可以学习到哦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值