牛刀小试:

for(var i = 0 ; i < 100; i++) {console.log(i);}

var i = 0;//第一个代码段

i < 100; //第二个代码段

i++; //第三个代码段

{console.log(i);}//第四个代码段

我们以"一二三四"来分别代表代码段一二三四,其实for循环执行顺序是:一二四三(二四三)(二四三)...【如果条件成立二四三会重复执行直到第二个代码段不成立才结束循环】

练习1:用for循环嵌套打印乘法口诀

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

//设i,j两个变量,它们的初始值都是1, i最大值为9 j最大值也为9   j永远小于等于i
for (var i = 1; i <= 9; i++) { //外层循环
for (var j = 1; j <= i; j++) { //内层循环 document.writeln(i + "*" + j + "=" + (i * j) + "&nbsp;&nbsp;&nbsp;"); } document.write('<br>');
}

这代码转为流程图如下:

练习2:打印10以内的质数(质数就是大于1而且只能被1与自身整除的正整数)

这题可以有两种写法,下面是采用continue的写法,也可以用break实现打印10以内的质数:

A:
for(var i =2; i<10; i++){ for(var j=2; j<i; j++){ //思考下为什么这边为啥用‘<’而不用‘<=’
console.log( i+'-'+j ); if( i%j==0){ continue A; } } document.write( '10以内的质数是' + i +'<br>' );
}

一开始,i是2,j也是2,j<i不成立那么直接

document.write( '10以内的质数是' + 2 +'<br>' );

接着,i是3,j是2,j<i成立,console.log( 3+'-'+2 );
3%2==0不成立,那么j++
再接着,i是3,j是3,j<i不成立那么直接
document.write( '10以内的质数是' + 3 +'<br>' );

继续,i是4,j是2,j<i成立,
console.log( 4+'-'+2 );
4%2==0成立,所以continue A;(跳出内存for循环,继续执行执行外层A结构体)

继续,i是5,j是2,j<i成立,
console.log( 5+'-'+2 );
5%2==0不成立,j++
下面i是5,j是3,j<i成立,
console.log( 5+'-'+3 );
5%3==0不成立,j++
下面i是5,j是4,j<i成立,
console.log( 5+'-'+4 );
5%4==0不成立,j++
下面i是5,j是5,j<i不成立,
document.write( '10以内的质数是' + 5 +'<br>' );
...
...
......后面不一一略举了...... 总之,理解了for循环的运行流程才算是编程入门,结果出来了,要多想想为什么结果是这样,浏览器是内部运行js代码的流程是咋样的,下面附上运行结果截图

 
 

全面解析for循环的更多相关文章

  1. 解析spring循环依赖策略

    循环依赖 所谓循环依赖就是多个Bean之间依赖关系形成一个闭环,例如A->B->C->...->A 这种情况,当然,最简单的循环依赖就是2个Bean之间互相依赖:A->B ...

  2. Netty源码解析 -- 事件循环机制实现原理

    本文主要分享Netty中事件循环机制的实现. 源码分析基于Netty 4.1 EventLoop 前面分享服务端和客户端启动过程的文章中说过,Netty通过事件循环机制(EventLoop)处理IO事 ...

  3. 解析for循环

    循环的作用就是让一个程序.连续进行一遍又一遍的循环: for循环: 分为四大类: 初始状态:相当于他一开始的数值,或条件: 循环条件:满足进行循环,不满足则停止: 循环体:循环的东西,程序: 状态改变 ...

  4. Java循环解析

    Java循环解析 while循环(先判断) int i=0; while (i<100){    i++;    System.out.println(i); } DoWhile循环(先执行,后 ...

  5. 使用JsonObject解析json

    第一种: [ { "0": "1", "1": "一", "id": "1", ...

  6. C#实现DNS解析服务

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAnUAAAENCAIAAADmDAQyAAAat0lEQVR4nO3dbXRU9YHH8ftq2+1uT7

  7. JavaScript是如何工作的:事件循环和异步编程的崛起 + 5种使用 async/await 更好地编码方式!

    摘要: 深度理解JS事件循环!!! 原文:JavaScript是如何工作的:事件循环和异步编程的崛起+ 5种使用 async/await 更好地编码方式! 作者:前端小智 Fundebug经授权转载, ...

  8. 6 admin(注册设计)源码解析、单例模式

    1.单例模式 https://www.cnblogs.com/yuanchenqi/articles/8323452.html 单例模式(Singleton Pattern)是一种常用的软件设计模式, ...

  9. jquery测试解析

    1.下列获取元素范围大小顺序错误的是 (选择一项) 1 A: B: C: D: 本题选择D 解析: 获取元素范围大小顺序依次为: $(#one).siblings("div")&g ...

随机推荐

  1. struts2增删改查---layer---iframe层---通配符---国际化

    在前一篇文章的基础上,修改一部分即可(在此只是简单介绍) struts.xml页面 在原来的基础之上 action的name="*_*"  class="包名.{1}&q ...

  2. JavaScript中的EcMAScript学习笔记

    一.Javascript概述(知道)    a.一种基于对象和事件驱动的脚本语言    b.作用: 给页面添加动态效果    c.历史: 原名叫做livescript.W3c组织开发的标准叫ECMAs ...

  3. .NET访问数据库的两种方式(C#语言)

    一.直接使用C#操作数据库的类库ADO.NETADO.NET使用Connection对象来连接数据库,使用Command或DataAdapter 对象来执行SQL语句,并将执行的结果返回给DataRe ...

  4. Aleta病毒

    文件一定要及时备份!!! 文件一定要及时备份!!! 文件一定要及时备份!!! 文件一定要及时备份!!! 文件一定要及时备份!!! 文件一定要及时备份!!! 文件一定要及时备份!!! 文件一定要及时备份 ...

  5. 【有意思的BUG】未名

    这个帖子描述定位一个BUG的思路. 开始了. 用浏览器访问某一个网址http://111.aaa.com/ ,如果发现提示异常,那么接下来该如何定位BUG呢? 用相同的浏览器去访问不同域(不是aaa. ...

  6. HDU 1176 免费馅饼:dp

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1176 题意: 横坐标范围为[0,10],你在第0秒站在坐标为5的地方. 在接下来的一段时间内,会有n个 ...

  7. python连接数据库异步存储

    当同步写入数据库时,可能会发生下载速度很快,但是写入速度很慢的情况,因此我们采用异步存储写入数据库. 实现异步写入mysql数据库的思路: 1,将数据库的连接数据写入到settings文件中,供后面自 ...

  8. Spark Streaming 调优指南

    SparkStreaming是架构在SparkCore上的一个"应用",SparkStreaming主要由DStreamGraph.Job的生成.数据的接收和导入以及容错四大模块组 ...

  9. Javacript的变量和输出

    一.js使用的三种方式 1.在HTML标签中,直接内嵌js(并不提倡使用): >>不符合W3C内容与表现分离的要求!!! 2.在HTML页面中使用<script></sc ...

  10. HTML5+js页面传值给Java后台的小技巧

    页面传值小技巧 平常我们在做的web项目,一般一个HTML页面上会有好几个步骤,step_num①,step_num②,step_num③,一般先显示step_num①,根据跳转条件显示step_nu ...