javascript:算法之for循环
一、for中的表达式
①短路表达式
a && b是表达式:当执行的时候如果表达式a结果不是0,就会执行表达式b。如果表达式a执行的结果是0,表达式b不执行
②i++与++i的不同
++i && k++:第一步:i先自己加1,赋给自己(代号i)。第二步:(代号i)与k(这时没自加)进行并运算。第三步:k才自加1
i++ && k++:第一步:i(这时没自加)和k(这时没自加)进行并运算。第二步:i才自己加1。第三步:k才自加1
i++与++i的不同:当他们和其他表达式混合时。
++i先自加1,然后其他表达式(这里&&)。i++先其他表达式(这里&&),再自加1。
//同If语句一样,`仅控制一条语句`,因此要注意`{}`和`;`的使用
for(var i = 0,k=0; i < 6; i++ && k++) console.log(i,k) ;console.log("汉子")
==for(var i = 0,k=0; i < 6; i++ && k++) {console.log(i,k) }console.log("汉子")
==for(var i = 0,k=0; i < 6; i++ && k++) {console.log(i,k); }console.log("汉子")
/*
0 0
1 0
2 1
3 2
4 3
5 4
汉子
*/
//过程一:i = 0,k=0:二:然后 i=0 小于6:三:打出来i=0 k=0四:!!i++&&k++ (i为0,(执行&&看出)不执行右面表达式, i自加1为1,不执行右面表达式k=0)
//过程二:i = 1,k=0:二:然后 i=0 小于6:三:打出来i=1 k=0四:!!i++&&k++ (i为1,(执行&&看出)执行右面表达式, i自加1为2,执行右面表达式k自加1为1)
//过程三..
for(var i = 0,k=0; i < 6; ++i && k++) console.log(i,k)
/*
0 0
1 1
2 2
3 3
4 4
5 5
*/
//过程一:i = 0,k=0:二:然后 i=0 小于6:三:打出来i=0 k=0四:!!++i&&k++ (i为0,i自加1为1,(执行&&看出)执行右面表达式, ,不执行右面表达式k自加1为1)
//过程二:i = 1,k=1:二:然后 i=0 小于6:三:打出来i=1 k=1四:!!++i&&k++ (i为1,i自加1为2,(执行&&看出)执行右面表达式, ,不执行右面表达式k自加1为2)
//过程三..
准备一
这段转自:http://blog.sina.com.cn/s/blog_af28a75a0101hii9.html
for循环的执行顺序用如下表达式:
for(expression1;expression2;expression3)
{
expression4;
}
执行的顺序应该是:
1)第一次循环,即初始化循环。
首先执行表达式expression1(一般为初始化语句);再执行expression2(一般为条件判断语句),判断expression1是否符合expression2的条件;如果符合,则执行expression4,否则,停止执行;最后执行expression3。
2)第N(N>=2)次循环
首先执行expression2,判断在expression3是否符合在expression2要求;如果符合,则继续执行在expression4,否则,停止执行。最后执行在expression3。如此往复,直至expression3不满足在expression2条件是为止。
总结:
总的来说,执行的顺序是一致的。先条件判断(expression2),再函数体执行(expression4),最后for执行(expression3)。往复......区别在于,条件判断的对象。第一次判断时,对象为初始化语句(expression1),后续的判断对象为执行后的结果(expression3)。

准备二
转:http://blog.sina.com.cn/s/blog_96ea9c6f010176mi.html
1,For语句同If语句一样,仅控制一条语句,因此要注意{}和;的使用

2,如上图的两层for循环,内层for循环的控制区域为绿色框内;外层For循环的控制区域为紫色框内;B块代码不受For循环影响,在外层For循环退出时,执行。
上图中For循环的执行顺序如下:

javascript:算法之for循环的更多相关文章
- 【原】小搞一下 javascript算法
前言:在前端大全中看到这句话,以此共勉.基础决定你可能达到的高度, 而业务决定了你的最低瓶颈 其实javascript算法在平时的编码中用处不大,不过不妨碍我们学习它,学习一下这些算法的思想,锻炼一下 ...
- javascript算法汇总(持续更新中)
1. 线性查找 <!doctype html> <html lang="en"> <head> <meta charset="U ...
- SharePoint 自定义的列表页面中添加javascript的一个 For循环语句后,该页面就打不开了。
一个sharepoint 2013的普通的列表的自定义新建页面,我在其中新添加几行javascript代码后页面就打不开了.如图所示: 真是一言不合,友谊的页面说打不开就打不开啊.后来慢慢比对发现是因 ...
- JavaScript 中 for in 循环和数组的问题
本文由 伯乐在线 - ElvisKang 翻译,进林 校稿.未经许可,禁止转载!英文出处:adripofjavascript.com.欢迎加入翻译小组. JavaScript的for…in循环用于迭代 ...
- JavaScript算法题之–随机数的生成
JavaScript算法题之–随机数的生成 需求描述:从一组有序的数据中生成一组随机并且不重复的数,类似于简单的抽奖程序的实现. 先来生成一个有序的数组: 1 var arr = [], 2 ...
- JavaScript算法与数据结构知识点记录
JavaScript算法与数据结构知识点记录 zhanweifu
- 深入理解javascript中的事件循环event-loop
前面的话 本文将详细介绍javascript中的事件循环event-loop 线程 javascript是单线程的语言,也就是说,同一个时间只能做一件事.而这个单线程的特性,与它的用途有关,作为浏览器 ...
- [译]Javascript中的for循环
本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...
- [译]Javascript中的do-while循环
本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...
随机推荐
- AJAX + WebService 实现文件上传
1. 界面HTML <p >上传文件: <input id="zfiles" type="file" name="file" ...
- Java poi读取,写入Excel,处理row和cell可能为空的情况
首先需要导入包 import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.NP ...
- linux c 笔记-3 c语言基础知识
关键字 数据类型: 简单(7):int long short float double char enum 复杂(2):struct union 类型修饰符(8):auto unsigned sign ...
- Gossip算法
Gossip算法因为Cassandra而名声大噪,Gossip看似简单,但要真正弄清楚其本质远没看起来那么容易.为了寻求Gossip的本质,下面的内容主要参考Gossip的原始论文:<<E ...
- EL算术表达式
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...
- WPF 线程 Dispatcher
WPF 应用程序从两个线程开始: 一个用于处理呈现 一个用于管理 UI 呈现线程有效地隐藏在后台运行,而UI线程则接收输入.处理事件.绘制屏幕以及运行应用程序代码. 大多数应用程序都使用一个 UI 线 ...
- C Primer Plus_第6章_循环_编程练习
1.题略 #include int main(void) { int i; char ch[26]; for (i = 97; i <= (97+25); i++) { ch[i-97] = i ...
- 触发器--mysql
SHOW TRIGGERS;查看所有触发器 create trigger tg1 after insert on user for each row beginupdate user set name ...
- 《C#本质论》读书笔记(16)构建自定义集合
16.1 更多集合接口 集合类(这里指IEnumerable层次结构)实现的接口层次结构 16.1.1 IList<T>与IDictionary<TKey,TValue> 字典 ...
- QT error: cannot find -lGL
自己电脑新搭建的QT5.4.2编程环境,编译的第一个程序出现错误:error: cannot find -lGL 经查证,是找不到GL库,解决办法: sudo apt-get install libg ...