一文彻底搞懂for循环

学for循环很简单,但是控制循环嵌套的停止逻辑很恶心。

单个for的语法

for(初始化变量1;判断语句2;变量更新3){
  //4循环体
}

其执行的顺序是:首先1,进行变量的初始化,然后2,判断是不是符合条件,符合了就执行循环体4,最后执行完之后进行3变量的更新,第一轮结束,将更新后的变量回到判断语句2,判断是否符合决定是否执行循环体4。

其实单个的for循环并没有什么值得注意的,想要跳出循环就只需要设置好判断的条件以及不要忘了变量更新就可以了。

例如:打印一个星号的方阵

    for (var i = 1; i <= 5; i++) {
      document.write('***** <br/>');
    }

声明i=1,只要i小于5就执行循环体打印星号,i=1 小于5,打印一次,i=2小于5,打印第二次.......依次增加到第6次的时候,i=6就已经不符合判断的条件(i <= 5),所以自动跳出循环。

多个for的嵌套

我们学习for的嵌套才是重点,接下来一起看吧

    for (初始化变量1; 变量1的判断; 变量1更新) {  
      for (初始化变量2; 变量2的判断; 变量2的更新) {
        //循环体2
      }
    }

其实就这个而言,for变量2整个循环就是第一个for循环的函数体,执行的顺序是:初始化变量1,然后进行变量1的判断,如果符合就执行循环体(第二个for循环,初始化变量2,变量2的判断,符合了就执行循环体2,然后进行变量2的更新,然后更新后抛回变量2的判断,直到内层for循环完毕,跳出去)此时循环体执行完毕,进行第一个for循环变量的更新。所以说就是第一次大哥给个信号,小弟内层for循环跑了好多下,直到不符合才和大哥说。

例如:单个*打印星号方阵

    for (var i = 1; i <= 5; i++) {  // 控制行数
      for (var j = 1; j <= 5; j++) { // 控制列数
        document.write('* ');
      }
      document.write('<br/>');
    }

刚刚是直接用5个星来打印星号方阵,现在是用一个*打印整个方阵。

执行顺序:声明i,判断i小于5然后执行循环体(也就是内层for),然后在内部小弟开始运作:声明j,j小于5,然后执行document.write('* ');执行完了变量j更新一下,然后抛回j小于5的判断,然后再决定执行document.write('* ');,在进行变量j的更新,直到最后,j=6了,不符合小弟的能力范围了,就回去和大哥说,也就是到了document.write('<br/>');,然后进行变量i的更新,然后再这样进入内层for循环,重新定义j,执行下去。周而复始,直到最后外边i不符合条件了,就可以结束了。

玩出花样

其实循环的重点就是判断语句以变量的更新。所以,我们只要知道,什么时候让循环停止就可以了。

直角三角形打印

    // 三角形打印,控制每一行星星的个数
    document.write('<hr />');
    for (var i = 1; i <= 5; i++) { // 控制行数
      for (var j = 1; j <= i; j++) {  // 控制列数
        document.write('* ');
      }
      document.write('<br/>');
    }

等腰三角形打印

    for (var i = 1; i <= 5; i++) { // 控制行数
      for (var k = 1; k <= 5 - i; k++) {//控制空格 行数和空格数成反比
        document.write('&nbsp;')
      }
      for (var j = 1; j <= i; j++) {//控制每列星星个数,输出星星个数
        document.write('* ');
      }
      document.write('<br/>');
    }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它将数据和操作封装在对象中,通过对象之间的交互实现程序的设计和开发。下面是一些关键概念,帮助你更好地理解Python面向对象编程。 1. 类(Class):类是对象的蓝图或模板,描述了对象的属性和行为。它定义了对象的特征和方法。例如,我们可以定义一个名为"Car"的类来表示汽车,其中包含属性(如颜色、型号)和方法(如加速、刹车)。 2. 对象(Object):对象是类的实例,是具体的实体。通过实例化类,我们可以创建一个对象。例如,我们可以创建一个名为"my_car"的对象,它是基于"Car"类的实例。 3. 属性(Attribute):属性是对象的特征,用于描述对象的状态。每个对象都可以具有一组属性。例如,"Car"类的属性可以包括颜色、型号等。 4. 方法(Method):方法是对象的行为,用于定义对象的操作。每个对象都可以具有一组方法。例如,"Car"类的方法可以包括加速、刹车等。 5. 继承(Inheritance):继承是一种机制,允许我们创建一个新类(称为子类),从现有类(称为父类)继承属性和方法。子类可以扩展或修改父类的功能。继承可以实现代码重用和层次化设计。 6. 多态(Polymorphism):多态是一种特性,允许不同类的对象对同一方法做出不同的响应。多态提高了代码的灵活性和可扩展性。 7. 封装(Encapsulation):封装是一种将数据和操作封装在对象中的机制,隐藏了对象的内部实现细节,只暴露必要的接口给外部使用。这样可以保护数据的安全性,提供了更好的模块化和代码复用性。 通过理解这些概念,你可以更好地掌握Python面向对象编程。在实践中,你可以使用类来创建对象,操作对象的属性和调用对象的方法,通过继承和多态实现代码的灵活性和可扩展性,通过封装保护数据的安全性和提高代码的可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值