JavaScript基础语法结构Day05

==========================================
1、循环结构-for
    1、while
        在控制台上输出1-100之间所有的数字
        //1、声明条件:从1开始
        var i=1;
        //2、循环结构-循环条件
        while(i<=100){//条件
            console.log(i);//3、操作
            i++;//4、更新循环变量
        }
    2、for语法
        for(表达式1;表达式2;表达式3){
            //循环操作
        }
        表达式1:声明条件
        表达式2:循环条件判断
        表达式3:更新循环变量

        for循环执行流程:
        1、计算表达式1的值
        2、计算表达式2的值(boolean),如果为true,则执行循环体,如果为false,则退出循环
        3、执行循环体
        4、计算表达式3的值
        5、计算表达式2... ...

    3、for语句三个表达式的特殊用法
        1、表达式1 允许为空
            for(;表达式2;表达式3){
                
            }

            表达式1;
            for(;表达式2;表达式3){
                
            }
        2、表达式2 允许为空
            如果省略的话,则为死循环
            最好在循环内部补充退出条件
        3、表达式3 允许为空
            死循环
        4、三个表达式都允许为空
            for(;;){
                console.log("这是死循环");
            }
        5、表达式1 和 表达式3 的内容可以多样化
            允许编写多个表达式
    4、循环嵌套
        for/while/do.while 多允许相互嵌套或转化
        循环嵌套:在一个循环中,又出现另一个循环
            for(var i=1;i<=10;i++){
                for(var j=1;j<=10;j++){
                    console.log(j);
                }
            }
    5、while/do..while/for 的异同点
        1、for 和 while
            共同点:
                先判断条件,再执行循环体
            使用场合:
                1、for    
                    优先使用在确定循环次数的场合下
                2、while
                    优先使用在不确定循环次数的场合下
        2、do...while
            先执行循环操作,再判断循环条件
            最少 执行1次循环
            场合:
                1、优先适用于不确定循环次数的场合下
                2、先执行循环体,根据循环体内的操作决定循环条件时,使用do...while

    练习:
        要求用户 弹框中分别输入 年,月,日
        求:该日 是星期?
        前提:1900.1.1 是星期一

                    求:2016.10.28
                    1900.1.1 - 2015.12.31 : x
                    2016.1.1 - 2016.9.30 :y
                    2016.10.28 距 1900.1.1 :x+y+28

    练习:
        1、控制台上 打印输出 *
        2、控制台上 打印输出 *****
        3、控制台上 打印输出
            *****
            *****
            *****
            *****
            *****
        4、控制台上 打印输出 以下内容
            *        第1行 1个星星
            **       第2行 2个星星
            ***      第3行 3个星星
            ****     第4行 4个星星
            *****    第5行 5个星星
        5、打印99乘法表
            1*1=1
            1*2=2 2*2=4
            1*3=3 2*3=6 3*3=9
            1*4=4 2*4=8 3*4=12 4*4=16
            .....
            1*9=9 2*9=18 3*9=27 4*9=36


    3、练习
        1、打印输出 1-1000之间所有的奇数
        2、计算 1-1000 所有偶数的和


        1*1=1
        1*2=2 2*2=4
        1*3=3 2*3=6 3*3=9
        ...

        3、素数
            从3 开始
            3 是素数
            4 不是素数
            5 是素数
            6 不是素数
            7 是素数
            8 不是素数
            9 不是
            10 不是
            11 是

          10:2-9

            35:2-34/2
            36: 2-36/2

            36/18 = 2
            36/19 = 1.0000
            36/36 = 1

        有一对兔子,从出生的第3个月起每个月都生一对兔子,小兔子长到第3个月后每个月又生一对兔子,假如兔子都不死,问某个月的兔子总和是多少

        1,1,2,3,5,8,... ...

        1,1,2,3,5,8,13,21,34,55,89
        斐波那契数列
        var n1=1,n2=1;

        n1 = n1 + n2;
        n2 = n1 + n2;
        console.log(n1);
        console.log(n2);

        n1 = n1 + n2;
        n2 = n1 + n2;
        console.log(n1);
        console.log(n2);
    求:数列中,某位上的数字时多少
     假定 f(10); 想求 第10个月 兔子的总量
            f(20); 想求 第20个月 兔子的总量

                f(5); 想求 第5个月 兔子的总量
                f(4); 想求 第4个月 兔子的总量
                f(3); 想求 第3个月 兔子的总量
                f(2); 想求 第2个月 兔子的总量 = 1
                f(1); 想求 第1个月 兔子的总量 = 1

                f(3)=f(2)+f(1)
                f(4)=f(3)+f(2)
                f(5)=f(4)+f(3)
                ...
                f(100)=f(99)+f(98)
  

猜你喜欢

转载自blog.csdn.net/Xiaotongbiji/article/details/81115273