zoukankan      html  css  js  c++  java
  • For循环详解

    for语句

    学过c语言都对循环结构不陌生,尤其是for循环,他是C语言中最有特色的循环语句,使用最为灵活。

    形式

    结构:for(表达式1;表达式2;表达式3){循环体结构}
    

    每部分的作用

    表达式1:一般作为循环变量赋初始值;
    表达式2:循环继续的条件,即能判断出真假的条件,一般为关系表达式;
    表达式3:用于循环变量的的改变,可加=加法,可减法.
    

    执行顺序

    (1)求解表达式1(只执行一次);
     (2) 求解表达式2,如果其值非0,执行表达式3;否则不进入,退出
    (3) 执行循环体语句,并求解表达式3,然后转向表达式2;
    (4)执行for语句的下一条语句.
    

    说完了基本概念,来看看怎么用法

    例子:求1-100之间所有整数的累加和?

         var sum=0;
         for(var i=1;i<=100;i++){sum+=i;} 
    

    是不是觉得太简单,那我们来简化一下代码

    根据for循环语句的执行顺序,可以把条件每次进入循环体之前都会先执行并且判断。可以改为

        for(var i=0,sum=0;i++<100;) sum+= i;//如果循环语句只有一条可以不写大括号
    

    如果觉得不过瘾,其实还可以在简化

    我们知道循环的第三部分,就是变量变化部分,他是在每次循环完成语句块后执行的内容,那么就可将sum写在第三部分

       for(var i=0,sum=0;i<=100;sum+=i,i++);
    

    for 循环的变体的终极-省略三个表达式

        var i=1,sum =0;//相当于表达式1
        for(;;)
        if(i<=100){sum+=i;i++}//相当于表达式2
        else break;//相当于表达式3
    

    说完了for循环的便捷之处,就不难理解说for循环的强大之处,但是并不是所有的循环都用for循环,根据实际情况而定,选取最便捷的方法。比如看下面的需求:

    例子:将自然数反序列输出 12345 ---> 54321

       var a = 12345;
        var i; //末位
        var t=0; //反序列
        while(a>0){
            i=parseInt(a%10);
            t = parseInt(t*10 + i);
            a = parseInt (a/10);
       }
        console.log(t)
    

    这里为什么选择while,而不是for了呢,因为这是5位数,要是几十位我们也不知道执行次数,一眼看不出来,执行次数,while比较合适

  • 相关阅读:
    2018-2019-2 20165235 《网络对抗技术》 Exp6 信息搜集与漏洞扫描
    2018-2019 20165235 网络对抗 Exp5 MSF基础
    2018-2019 20165235 网络对抗 Exp4 恶意代码分析
    2018-2019-3 网络对抗技术 20165235 Exp3 免杀原理与实践
    2018-2019-2 20165235《网络对抗技术》Exp2 后门原理与实践
    Exp1 PC平台逆向破解 20165235 祁瑛
    2018-2019 20165235 网络对抗技术 Exp0:kali的安装
    20165302 Exp9 Web安全基础
    20165302 Exp 8 Web基础
    2018-2019-2 20165302 Exp7 网络欺诈防范
  • 原文地址:https://www.cnblogs.com/my12-28/p/12543480.html
Copyright © 2011-2022 走看看