Javascript——For循环语句

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mintsolace/article/details/78762377

认识for循环:循环语句就是执行一些类似的代码,让这些代码的编写变得简化。
在控制台输出1~100:

    <script type="text/javascript">
        for(var i=1; i<=100; i++){
            console.log(i);
        }
    </script>

补充:i++等价于i=i+1,即i自增1
也就是说

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

等价于

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

准确遍历for循环:即分析程序的运行、走向。

    <script type="text/javascript">
        for(var i = 1 ; i < 13 ; i = i + 4){
            console.log(i);
        }
    </script>

控制台输出1,5,9.
遍历以上代码:
程序一运行,将执行var i = 1;这条语句, 所以i的值是1。 然后程序会验证i < 13是否满足,1<13是真,所以执行一次循环体(就是大括号里的语句)。执行完循环体之后,会执行i=i+4这条语句,所以i的值是5。
然后程序会验证i < 13是否满足,5<13是真,所以执行一次循环体(就是大括号里的语句)。执行完循环体之后,会执行i=i+4这条语句,所以i的值是9。
然后程序会验证i < 13是否满足,9<13是真,所以执行一次循环体(就是大括号里面的语句)。执行完循环体之后,会执行i=i+4这条语句,所以i的值是13。
然后再程序会验证i < 13是否满足,13<13是假,所以不执行循环体了,退出循环。

例1:

    for(var i=50; i<40;i++){
        console.log(i);
    }

什么也不输出,因为程序一开始i=50,不满足i<40,所以不会执行。

例2:

    for(var i=1; i<10;i=i+3){
        i=i+1;
        console.log(i);
    }

输出2,6,10。因为程序一开始i=1,所以进入循环体,i变为2,输出2。
然后执行i=i+3,所以i等于5,满足i<10,所以进入循环体,i变为6,输出6。
然后执行i=i+3,所以i等于9,满足i<10,所以进入循环体了, i变为10,输出10
然后执行i=i+3,所以i等于13了,不满足i<10,所以不执行循环体。

例3:

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

    }
    console.log(i);

输出11。程序一开始,i等于1,满足i<=10,进入循环体,但是循环体没有语句,不会输出。i++执行。 所以一直当i为10的时候,又执行了一次i++,此时i等于11。不满足i<=10了,退出循环,输出11。

例4:

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

    }
    console.log(i);

输出7。

例5:

    <script type="text/javascript">
        for(var i=1;i<10;i=i+1){
            if(i%2==0){
                i=i*2;
            }
            console.log(i);
        }
    </script>

输出1,4,5,12。

例6:

        for(var i=1;i>0;i=i+1){
            console.log(i);
        }

一个死循环。

例7:

        var i=3;
        for(; i<10; i++){
            console.log(i);
        }

循环灵活,输出3,4,5,6,7,8,9。

例8:

        for(var i=3; i<20; i=i+2){
            if(i%3==2){
                i=i+1;
            }else{
                i=i+2;
            }
            console.log(i);
        }

输出的是5,9,12,15,18。

例9:找出1~1000中所有能被5整除,或者被6整除的数字,在控制台输出。

        for(var i=1; i<=1000; i=i+1){
            if(i%5==0 || i%6==0){
                console.log(i);
            }
        }

例10:
用户输入一个数字,列出所有它能够整除的数字,比如用户输入48,那么控制台中将显示1,2,3,4,6,8,12,16,24,48。用户输入19,控制台中将显示1,19。用户输入21,控制台中将显示1,3,7,21。

    <script type="text/javascript">
        var num=parseInt(prompt("请输入一个数字"));
        for(var i=1; i<=num;i++){
            if(num %i==0){
                console.log(i);
            }
        }
    </script>

例11:
轮流报数,如果报到能被7整除的数字,或者尾数是7的数字,就算踩地雷了,请在控制台输出1~60之间所有的“安全数”。比如1、2、3、4、5、6、8、9、10、11、12、13、15、16、18……

        for(var i=1;i<=60;i++){
            //这个数字不能被7整除,且这个数字的个位数不能是7
            if(i%7!=0 && i%10!=7)
                console.log(i);
        }

例12:
水仙花数是一种特殊的三位数,它的特点就是每个数位的立方和等于它本身,比如153就是水仙花数,因为 13 + 53 + 33 =153。在100~999之内只有4个水仙花数,请找出来。

    <script type="text/javascript">
        //穷举100~999
        for(var i=100;i<=999;i++){
            //得到这个i的每一个位
            var baiwei=parseInt(i/100);
            var shiwei=parseInt(i%100/10);
            var gewei=i%10;
            //验证是否符合水仙花数
            var a=Math.pow(baiwei,3);
            var b=Math.pow(shiwei,3);
            var c=Math.pow(gewei,3);
            if(a+b+c==i){
                console.log(i);
            }
        }
    </script>

例13:求1~100的和

        var sum=0; //累加器
        //遍历1~100,将所有数字放到累加器里
        for(var i=1;i<=100;i++){
            sum=sum+i;
        }
        console.log(sum);

所有的变量都要声明,sum不能在for里直接声明

例14:用循环语句求阶乘,比如,13的阶乘是?

        var result=1; 
        for(var i=1;i<=13;i++){
            result=result*i;
        }
        console.log(result);

例15:用户输入一个数,输出因数的个数。比如用户输入48,此时有1、2、3、4、6、8、12、16、24、48,共10个数字。用户输入21,此时有1、3、7、21共4个数字。

        //用户输入一个数字
        var num = parseInt(prompt("请输入数字"));
        // 找因数
        // 比如用户输入48,要从1~48,分别让48除以这个数
        // 穷举法
        var amount = 0;     //个数,累加器
        for(var i = 1 ; i <= num ; i++){
            if(num % i == 0){
                // console.log(i);      //不想输出
                amount++;       //自增1
            }
        }
        //循环语句结束之后,总量就已经产生了,弹出结果:
        alert(amount);

例16:判断质数。
质数就是只能被1和自己整除,即:它的因数个数是2。比如2、3、5、11、13、17、19、23……用户输入一个数字,弹出这个数字是否是质数。

        var number=parseInt(prompt("请输入一个数字"));
        var amount=0;
        for (var i = 1; i <=number; i++) {
            if (number%i==0) {
                amount++;
            }
        }
        if (amount==2) {
            alert("是质数");
        }else{
            alert("不是质数");
        }

猜你喜欢

转载自blog.csdn.net/mintsolace/article/details/78762377