5.2.循环结构

当一段代码被重复调用多次的时候,可以用循环结构来实现,就像第一个实例中出现的场景一样,需要重复询问对方是否有空,这样就可以使用循环结构来搞定

5.2.1.for循环语句

//语法结构:
for(初始化表达式;条件表达式;条件改变表达式){
循环体;

程序流程图

实例:

/**
*输出1-100的整数
*/
for(var i=1;i<100;i++){
document.write(i+"<br />");
}

for循环详解

//假如要循环输出1-3 这3个整数,如果用for循环来实现,那么在循环内部是怎样运行的呢?
for(var i=1;i<=3;i++){
console.log(i);
} 上面程序的执行流程:
1、先执行初始化表达式 var i=1,给i赋值
2、把i=1,拿到条件表达式中判断,此时i=1<=3 为true
3、当条件表达式为true的时候,执行循环体,console.log(i) i此时是等于1的,所以输出了1
4、执行完成循环体以后,开始执行条件改变表达式i++ 执行完成i++后 i=2
5、拿i=2放到条件表达式中判断 i=2<=3 为true
6、当条件表达式为true,又开始执行循环体console.log(i) i此时是等于2的,所以输出了2
7、执行完成循环体以后,开始执行条件改变表达式i++ 执行完成i++后 i=3
8、拿i=3放到条件表达式中判断 i=3<=3 为true
9、当条件表达式为true,又开始执行循环体console.log(i) i此时是等于3的,所以输出了3
10、执行完成循环体以后,开始执行条件改变表达式i++ 执行完成i++后 i=4
11、拿i=4放到条件表达式中判断 i=4<=3 为false
12、这个时候条件表达不成立了,循环结束

注意:如果条件表达式永远为真的情况下,程序就会一直循环,造成死循环,把浏览器卡死**

for循环练习题:

1、输出h1到h6的标题 2、求解1—100和 3、求解 1-100 奇数和 4、求解1-100中能被3整除的所有数字的和 5、求解1-100 能被3和5同时整除的数字的和 6、使用for循环输出2000年到2100年之间的闰年 提示:闰年:400的倍数 或者 是4的倍数不是100的倍数

5.2.2 while循环语句

语法结构:
while(条件表达式){
循环体
}

程序流程图

var i=1; //这里类似于for循环的初始化表达式
while(i<100){ //这里为条件表达式
console.log(i);
i++;//条件改变表达式
}

总结:while循环的特点就是,当条件表达式为真的时候就执行循环体里面的内容,为假的时候就退出循环,因此,一定要搞清楚,在什么时候结束循环,不然会写出死循环代码**

练习题: 一张纸的厚度是0.01毫米,对折多少次后能超过1米?

解答:
var paper = 0.01;//纸的初始厚度
var count = 0;//统计折纸次数
while(paper<1000){
paper = paper*2;
count++
}
console.log(count);

总结:while和for都可以用来做循环,那么它们各自的应用场景是什么呢?什么情况下用for,什么情况下用while?从上面的代码我们可以知道,使用for循环的话得先知道要循环多少次,这个次数是已经知道了的,而while的特点就是只要条件表达式为真就循环,否则就退出,所以,我们得出一个常用的结论,当知道循环次数的时候,用for循环要方便一些,当不知道次数,但是知道条件表达式什么时候为false,这个时候可以用while更方便一些。**

5.2.3 do...while循环语句

程序流程图:

实例:

var i=1;
do{
console.log(i);
i++;
}while(i<=10);

练习: 模拟考试 var i = 0; do{ i++; var score = parseInt(Math.random()*101); console.log("第"+i+"次考试成绩为:"+score+"

"); }while(score<60); console.log('考试通过!

');

总结:do while循环和while循环的用法差不多,只是do while循环比较粗暴,一上来不管三七二十一就先执行一次,执行完成了以后再去问问条件表达式是否满足条件,所以说do while循环执行循环体的次数是大于等于1次,而while循环比较温柔,先上来问问条件表达式可不可以执行,所以执行循环体的次数是大于等于0次**

5.2.4.break,continue语句

//break;表示跳出当前循环
/**
* 当i=5时,跳出循环
*/
for(var i = 0;i<10;i++){
if(i==5){
break;//结束当前for循环,也就是说循环i只加到5就被结束掉了
}
console.log(i);
}
/**
*当i=5时,跳出本次循环
*/
for(var i=0;i<10;i++){
if(i==5){
continue;//结束本次循环,继续下次循环
}
console.log(i);
}

总结:continue和break都是用来跳出循环的,只是跳出的位置不同,break直接把循环结束掉了,而continue只是结束掉了一次循环,后面的循环还要继续,有时候去判断数组里面是否有某个值的时候,需要去把数组元素循环查询出来做对比,如果对比上了就不用继续查询后面的元素了,这种情况需要用到break,当要过滤掉某次循环掉话,可以用条件语句加上continue实现**

5.2.5.循环嵌套

循环嵌套就是循环中有循环,这种结构需要等内层循环执行完成后才能执行外层循环。

实例:

/**
*
*输出1-10,并且当输出这个数字(i)的时候 要求要输出i次
*例如:当输出的数字时3的时候,3要输3次 输出4的时候 4要输4次
*/ for(var i=1;i<=10;i++){
for(var k=0;k<i;k++){
document.write(i);
}
document.write("<br />");
}

上面的例子就是一个循环嵌套的实例。循环嵌套的话需要等待内层循环完成之后,再执行外层循环,顺序是由内向外的。这个例子中,

1、当外层i=1的时候,
内层循环执行代码为:
for(var k=0;k<1;k++){
document.write(i);
}
这里面执行1次循环 输出1次1 然后返回到上层循环
2、当外层循环i=2的时候
内层循环执行代码为:
for(var k=0;k<2;k++){
document.write(i);
}
这里执行2次循环 输出2次2 然后返回到上层循环
以此类推...
当外层循环i=10的时候
内层循环执行代码为:
for(var k=0;k<10;k++){
document.write(i);
}
这里执行10次循环 输出10次10 然后返回到上层循环
这个时候i=11,不满足外层循环条件,整个循环就结束掉了。
总结:循环对于初学者来说是比较难理解的,但是只要搞清楚循环的顺序,循环次数的变化,第一次执行哪些,第二次执行哪些,这样就比较简单了。对于循环嵌套,抓住由内而外的执行顺序这个关键点,问题就迎刃而解了**

练习: 在网页中输出99乘法表

for(var i=1;i<=9;i++){
for(var k=1;k<=i;k++){
document.write(i+"x"+k+"="+k*i+"&nbsp;&nbsp;&nbsp;");
}
document.write("<br />");
}

作业

1、(分支结构)定义一个变量表示“分数” 并给其赋值,在页面中是根据分数高低不同输出如下文字:优秀(>=90),良好(>=80),中等(>=70),及格(>=60),不及格(其他情况)。——使用if和switch两种方法来实现。

2、(分支结构)根据一个人的存款的多少决定使用什么交通工具:如果我有10万元以上,就买小汽车上班或者如果我有5000元以上,我就买摩托上班,或者如果我有300元以上,我就买自行车上班,或者如果我有20元以上,我就坐公交上班,否则,我就只好步行上班提示:使用一个变量表示其存款数,对该变量进行判断以输出所采用的交通工具

3、(循环)输出1-100之间能被3整除的数。

4、(循环)计算1-1000之间能被3整除的偶数的个数。

5、(循环)输出九九乘法表

6、(流程:分支与循环)输出从2000年(含)到3000年(含)间的所有闰年。提示:闰年:400的倍数 或者 是4的倍数不是100的倍数

7、(循环,分析)一张纸的厚度是0.01毫米,则该纸对折30次后是多厚(据说超过珠穆朗玛峰的高度)。反过来,一张纸对折几次后,就超过1米厚了?

8、(循环,简单逻辑)写一个程序输出1到100这些数字。但是遇到数字为3的倍数的时候,输出“三”替代数字,为5的倍数用“五”代替,既是3的倍数又是5的倍数则输出“三五”。

9、求解1-100 能被3和5同时整除的数字的和

10、求1-3+5-7+…-99+101

螺钉课堂视频课程地址:http://edu.nodeing.com

js语法基础入门(5.2)的更多相关文章

  1. js语法基础入门(1)

    1.基础入门 1.1.hello world 1.1.1.JavaScript是什么? JavaScript是一门跨平台.面向对象的轻量级脚本语言,在web开发中被广泛应用 1.1.2.JavaScr ...

  2. js语法基础入门(7)

    7.数组 7.1.什么是数组以及相关概念? 什么是数组?是一组数据有序排列的集合.将一组数据按一定顺序组织为一个组合,并对这个组合命名,这样便构成了数组. 什么是数组元素?组成数组的每一个数据称为数组 ...

  3. js语法基础入门(6)

    6.函数 6.1.函数是什么? 函数就是具有名称和一定功能点代码块,这段代码块被封装起来,由一组语句组成,它们是JavaScript的基础模块单元,用于代码复用.信息隐藏和组合调用.一般来说,所谓编程 ...

  4. js语法基础入门(1.2)

    1.4.查找元素的方法 1.4.1.查找元素的方法 JavaScript可以去操作html元素,要实现对html元素的操作,首选应该找到这个元素,有点类似于css中的选择器 html代码: <d ...

  5. js语法基础入门(5.1)

    5.流程控制 5.1.选择结构 程序流程图 图例: 椭圆: 开始/结束 矩形: 操作 菱形: 判断 连接线: 走向 可以根据程序流程图,理清楚程序执行的流程 5.2.1.if语句 //if语句语法结构 ...

  6. js语法基础入门(4)

    4.运算符 4.1.什么是运算符? 运算符就是用来表示具体运算规则的符号,例如数学计算中的加减乘除就是具体的运算规则,我们分别用"+ - * /"等符号来表示 4.2.运算符的分类 ...

  7. js语法基础入门(3)

    3.数据类型 3.1.数据类型学习重点 前面我们通俗的讲了,数据类型其实就是对数据进行了分类,那么,在js中到底把数据分成了几类?这些类的名称叫什么?每个分类下面有那些值?这些问题是需要记清楚的,例如 ...

  8. js语法基础入门(2)

    2.变量 2.1.变量的声明 声明变量的时候没有赋值,默认输出undefined //通过var 声明一个变量 var user: //默认输出undefined 可以同时声明多个变量 var use ...

  9. Swift语法基础入门三(函数, 闭包)

    Swift语法基础入门三(函数, 闭包) 函数: 函数是用来完成特定任务的独立的代码块.你给一个函数起一个合适的名字,用来标识函数做什么,并且当函数需要执行的时候,这个名字会被用于“调用”函数 格式: ...

随机推荐

  1. 居然还有人这样解说mybatis运行原理

    目录 Mybatis基本认识 动态代理 JDK实现 CGLIB动态代理 总结 反射 Configuration对象作用 映射器结构 sqlsession执行流程(源码跟踪) Executor Stat ...

  2. 【HIVE】(3)联合查询join、时间戳函数、字符串函数

    数据 t_join1.txt 1,a,1 2,b,2 3,c,4 t_join2.txt 1,2a 2,2b 3,2c 建表.导入: create table t_join1(id int, name ...

  3. Java实现 LeetCode 771 宝石与石头(这是真暴力)

    771. 宝石与石头 给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头. S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石. J 中的字母不重复,J 和 ...

  4. Java实现 蓝桥杯VIP 算法提高 扫雷

    算法提高 扫雷 时间限制:1.0s 内存限制:256.0MB 问题描述 扫雷游戏你一定玩过吧!现在给你若干个n×m的地雷阵,请你计算出每个矩阵中每个单元格相邻单元格内地雷的个数,每个单元格最多有8个相 ...

  5. Java实现 蓝桥杯VIP 算法提高 盾神与砝码称重

    算法提高 盾神与砝码称重 时间限制:1.0s 内存限制:256.0MB 提交此题 查看参考代码 问题描述 有一天,他在宿舍里无意中发现了一个天平!这个天平很奇怪,有n个完好的砝码,但是没有游码.盾神为 ...

  6. Java实现约瑟夫环问题

    约瑟夫环问题起源于一个犹太故事.约瑟夫环问题的大意如下: 罗马人攻占了桥塔帕特,41个人藏在一个山洞中躲过了这场浩劫.这41个人中,包括历史学家Josephus(约瑟夫)和他的一个朋友.剩余的39个人 ...

  7. 数据结构:用实例分析ArrayList与LinkedList的读写性能

    目录 背景 ArrayList LinkedList 实例分析 1.增加数据 2.插入数据 3.遍历数据 3.1.LinkedList遍历改进 总结 背景 ArrayList与LinkedList是J ...

  8. Linux 终止进程

    kill命令 kill -l,查看可用的进程号 支持64种,常用的三种,1代表重启,9代表强制终止,15代表正常终止 kill -1 进程ID号,重启进程 killall -9 进程名,杀死对应的全部 ...

  9. 实验五 shell脚本编程

    项目 内容 这个作业属于哪个课程 课程链接 这个作业的要求在哪里 作业要求 学号-姓名 17041428-朱槐健 作业学习目标 1. 了解shell脚本的概念及使用 2.掌握shell脚本语言的基本语 ...

  10. 内核与驱动文件的version magic匹配问题

    https://blog.csdn.net/yubing_615/article/details/52183185 1.问题:本地编译的一整套底层代码down到设备跑都正常,但是由这套代码上传SVN服 ...