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比较合适
For循环详解的更多相关文章
- PHP中foreach循环详解
首先要说的是,其实我对foreach循环的用法并不是很精通,说详解,其实也只是我自己的理解,希望对你能有点帮助 . 先来看一下foreach的语法: foreach ($array as $key=& ...
- 循环(数组循环、获取json数据循环)、each()循环详解
return; // 退出循环(不满足,退出此次循环.下次满足条件,依然会走此循环)return false; //退出函数(退出所有) 一. 数组循环: html: <div class=&q ...
- nodejs事件和事件循环详解
目录 简介 nodejs中的事件循环 phase详解 timers pending callbacks idle, prepare poll轮询 check close callbacks setTi ...
- C语言For循环详解--saying2
c语言中的for循环语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句.for(表达式 1;表达式 2;表达式 3 ...
- 【Java基础】While循环详解
循环结构分两大类,一类是当型,一类是直到型. 当型: 当布尔值表达式条件为True时,反复执行某语句,当布尔表达式的值为False时才停止循环,例如:while 与 for循环. 直到型: 先执行某语 ...
- foreach循环详解
在Java1.5+中,foreach循环非常实用. public class Demo <T> implements Iterable<T>, Iterator<T& ...
- Shell while循环详解
while 循环是 Shell 脚本中最简单的一种循环,当条件满足时,while 重复地执行一组语句,当条件不满足时,就退出 while 循环. Shell while 循环的用法如下: while ...
- JS For 循环详解;棋盘放粮食 64;冒泡排序实例
FOR( 初始条件:循环条件:状态改变:) { 被执行的代码块} 初始条件: 在循环(代码块)开始前执行 循环条件:定义运行循环(代码块)的条件 状态改变: 在循环(代码块)已被执行之后执行 循环可以 ...
- Js中的For循环详解
大家好,我是逆战班的一员,今天给大家讲解一下Js循环中的For循环. For循环是JS循环中一个非常重要的部分. 我们先讲一下for循环的作用: For循环用在需要重复执行的某些代码,比如从1打印到1 ...
随机推荐
- CVE-20117-111882漏洞复现及利用
背景 工程实践题目: 渗透方向:实验班要求 1.利用已有的漏洞,搭建内网实验环境(WEB漏洞或系统漏洞以近两年内的CVE编号为准,每人一个,先报先得,具体由学习委员负责协调),利用工具进行内网渗透攻击 ...
- CodeMixerPro工具,完美替代ChaosTool,iOS添加垃圾代码工具,代码混淆工具,代码生成器,史上最好用的垃圾代码添加工具,自己开发的小工具
新工具 ProjectTool 已上线 这是一款快速写白包工具,秒级别写H5游戏壳包,可视化操作,极易使用,支持Swift.Objecive-C双语言 扣扣交流群:811715780 进入 Proje ...
- 【转】使用ssh-copy-id 快速的配置免密登录
1.在需要免密登录其他机器的主机上 生成公钥,私钥等. ssh-keygen -t rsa 回车回车回车 哪个用户登录就在哪个用户目录的.ssh目录下生成. 2.将以下命令做成脚本,因为环境不能下载, ...
- eclipse 配置tomcat运行环境
eclipse环境下如何配置tomcat,并且把项目部署到Tomcat服务器上 1.打开Eclipse,单击“Window”菜单,选择下方的“Preferences”. 2.单击“Server”选项, ...
- 为什么 select count(*) from t,在 InnoDB 引擎中比 MyISAM 慢?
统计一张表的总数量,是我们开发中常有的业务需求,通常情况下,我们都是使用 select count(*) from t SQL 语句来完成.随着业务数据的增加,你会发现这条语句执行的速度越来越慢,为什 ...
- MacOS下的渗透测试工具
信息收集工具 工具名称 安装命令 CeWL brew install sidaf/pentest/cewl dirb brew install sidaf/pentest/dirb dnsrecon ...
- Spring Cloud 系列之 Alibaba Sentinel 服务哨兵
前文中我们提到 Netflix 中多项开源产品已进入维护阶段,不再开发新的版本,就目前来看是没有什么问题的.但是从长远角度出发,我们还是需要考虑是否有可替代产品使用.比如本文中要介绍的 Alibaba ...
- CERN Root与CLING
CERN Root on Arch Linux For WSL: 一个CLI才是本体的程序居然有图形启动界面,莫名的微妙感 接触到Root是在一个4chan上喷matlab的thread里.某anon ...
- 数据科学中需要知道的5个关于奇异值分解(SVD)的应用
介绍 "Another day has passed, and I still haven't used y = mx + b." 这听起来是不是很熟悉?我经常听到我大学的熟人抱怨 ...
- Python第七章-面向对象高级
面向对象高级 一. 特性 特性是指的property. property这个词的翻译一直都有问题, 很多人把它翻译为属性, 其实是不恰当和不准确的. 在这里翻译成特性是为了和属性区别开来. 属性是指的 ...