1.循环

在JS中主要有以下三种类型的循环

  • for循环
  • while循环
  • do...while循环

2. for循环

2.1 语法结构如下:

for (初始化变量; 条件表达式; 操作表达式) {
//循环体
}

举例:打印100句“你好”

for (var i = 1; i <= 100; i++) {
console.log('你好!');
}

2.2 断点调试

用于帮助我们观察程序的运行过程



注意:设置断点之后要刷新。

2.3 案例

案例1:1+2+3+...+100

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

案例2:1到100之间数的平均值

var aver, sum = 0;
for (var i = 1; i <= 100; i++) {
sum += i;
}
aver = sum / (i - 1);
console.log(aver);

案例3:1到100之间所有奇数值之和and偶数之和

var even = 0;
var odd = 0;
for (var i = 1; i <= 100; i++) {
if (i % 2 == 1) {
odd += i;
} else {
even += i;
}
}
console.log(odd);
console.log(even);

案例5:1到100之间所有可以被3整除的数之和

var sum = 0;
for (var i = 1; i <= 100; i++) {
if (i % 3 == 0) {
sum += i;
}
}
console.log(sum);

案例5:求学生成绩

要求:用户输入班级人数,之后以此输入每个学生成绩,最后打印出该班级总的成绩和平均成绩。

var sum = 0;
var aver, score;
var num = prompt('请输入班级总人数');
for (var i = 1; i <= num; i++) {
score = prompt('请输入第' + i + '个学生的成绩');
sum += parseFloat(score);
}
aver = sum / num;
alert('班级总成绩是' + sum);
alert('班级平均成绩是' + aver);

案例6:一行打出五颗星

要求:利用追加字符串的方式

//方法1:
console.log('★★★★★'); //★★★★★ //方法2:
for (var i = 1; i <= 5; i++) {
console.log('★'); //5★
} //方法3:
var str = '';
for (var i = 1; i <= 5; i++) {
str += '★';
}
console.log(str); //★★★★★

3. 双重for循环

3.1 语法格式如下

for (外层初始化变量; 外层条件表达式; 外层操作表达式) {
for (里层初始化变量; 里层条件表达式; 里层操作表达式) {
//执行语句
}
}

举例:打印5行5列星星

//打印5行5列的星星
var str = '';
for (var i = 1; i <= 5; i++) {
for (var j = 1; j <= 5; j++) {
str = str + '☆';
}
str = str + '\n';
}
console.log(str);

案例:打印n行m列是星星

要求:用户输入行数和列数,之后在控制台打印用户输入的行数和列数的星星。

var n = prompt('请用户输入行数');
var m = prompt('请用户输入列数');
var str = '';
for (var i = 1; i <= n; i++) {\\
控制行数
for (var j = 1; j <= m; j++) {\\
控制列数
str = str + '☆';\\
控制列数
}
str = str + '\n';\\
控制行数
}
console.log(str);

案例:打印到三角形

写法1:

var row = prompt('输入行数');
var col = prompt('输入列数');
var str = '';
for (var i = 1; i <= row; i++) {
for (var j = 1; j <= col; j++) {
str = str + '☆';
}
str = str + '\n';
col = col - 1;
}
console.log(str);

写法2:

var row = prompt('输入行数');
var col = prompt('输入列数');
var str = '';
for (var i = 1; i <= row; i++) {
for (var j = i; j <= col; j++) {
str = str + '☆';
}
str = str + '\n';
}
console.log(str);

案例:打印正三角形



写法1:

var str = '';
for (var i = 10; i > 0; i--) {
for (var j = i; j <= 10; j++) {
str = str + '☆';
}
str = str + '\n';
}
console.log(str);

写法2:

var str = '';
for (var i = 1; i <= 10; i++) {
for (var j = 1; j <= i; j++) {
str = str + '☆';
}
str = str + '\n';
}
console.log(str);

综合案例:打印99乘法表

var str = '';
for (var i = 1; i <= 9; i++) {
for (var j = 1; j <= i; j++) {
str = str + j + 'x' + i + '=' + i * j + '\t'; \\'t'是tab键
}
str = str + '\n';
}
console.log(str);

4. while循环

语法格式

while (条件表达式) {
//循环体
}

相比较for循环的优点之处就在于可以做一些复杂的条件判断

案例:弹出一个提示框“你爱我吗?”如果输入的不是“我爱你”,就一直弹出提示框“你爱我吗?”

var str = prompt('你爱我吗?');
while (str != '我爱你') {
str = prompt('你爱我吗?');
}
alert('我也爱你呀');

5. do while循环

语法结构

do {
//循环体
} while (条件表达式)

与while循环的不同之处在于do while是先执行以此循环体再判断条件,所以do while循环体至少执行一次。

案例:打印人的一生

var age = 1;
do {
console.log('今年' + age + '岁');
age++;
} while (age <= 100)

案例:计算1+2+3+...+100

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

案例:弹出一个提示框“你爱我吗?”如果输入的不是“我爱你”,就一直弹出提示框“你爱我吗?”

do {
var mesg = prompt('你爱我吗?');
} while (mesg !== '我爱你') //若满足while里面的条件表达式就一直执行 !==是指不全等
alert('我也爱你呀!');

6. continue

用于跳出本次循环,继续执行下一次循环,本次循环体中continue之后的代码就会少执行一次。

案例:求1~100之间,除了能被7整除之外的整数和

var sum = 0;
for (var i = 1; i <= 100; i++) {
if (i % 7 == 0) {
continue;
}
sum += i;
}
console.log(sum);
</script>

7. break

之前提到break可以跳出整个switch语句,break还可以跳出整个for循环

for (var i = 1; i <= 5; i++) {
if (i == 3) {
break;
}
console.log('我正在吃第' + i + '个包子');
}
// 我正在吃第1个包子
// 我正在吃第2个包子

8. 作业

接收用户输入的用户名和密码,若用户名为admin,密码为123456则提示用户登陆成功,否则让用户一直输入

do {
userName = prompt('请输入用户名');
password = prompt('请输入用户密码');
} while (userName != 'admin' && password != '123456')
alert('登陆成功!');

求整数1~100的累加值,但要求跳过所有个位数为3的数(用continue实现)

var sum = 0;
for (var i = 1; i <= 100; i++) {
if (i % 10 == 3) {
continue;
}
sum = sum + i;
}
console.log(sum);

模拟ATM机

var balance = 100;
flag = 1;
while (flag) {
var mesg = prompt('请输入您需要的操作序号\n1.存钱\n2.取钱\n3.显示余额\n4.退出');
switch (mesg) {
case '1':
save = prompt('请输入存入金额');
balance = parseFloat(save) + balance;
alert('当前余额为' + balance);
break;
case '2':
pay = prompt('请输入取款金额');
balance = balance - pay;
alert('当前余额为' + balance);
break;
case '3':
alert('当前余额为' + balance);
break;
case '4':
alert('正在退出');
flag = 0;
break;
default:
alert('序号输入错误');
break;
}
}

JavaScript-----7.循环的更多相关文章

  1. javascript之循环保存数值

    javascript之循环保存数值 语言都是相通的,这句话在我学javascript时有的深刻的意识.js中的for循环与java中的for循环有很大相似之处. 先看下面这段代码 for(var i= ...

  2. JavaScript的循环语句

    JavaScript的循环语句 1.JavaScript的循环语句 (1)for循环语句 - 循环代码块一定的次数: (2)for/in循环语句 - 循环遍历对象的属性: (3)while循环语句 - ...

  3. JavaScript while 循环

    JavaScript while 循环的目的是为了反复执行语句或代码块. 只要指定条件为 true,循环就可以一直执行代码块. while 循环 while 循环会在指定条件为真时循环执行代码块. 语 ...

  4. c#封装DBHelper类 c# 图片加水印 (摘)C#生成随机数的三种方法 使用LINQ、Lambda 表达式 、委托快速比较两个集合,找出需要新增、修改、删除的对象 c# 制作正方形图片 JavaScript 事件循环及异步原理(完全指北)

    c#封装DBHelper类   public enum EffentNextType { /// <summary> /// 对其他语句无任何影响 /// </summary> ...

  5. JavaScript for循环实现表格隔行变色

    本代码主要演示的是for循环, <!doctype html> <html lang="en"> <head> <meta charset ...

  6. JavaScript数组循环

    JavaScript数组循环 一.前言 利用Javascript map(),reduce()和filter()数组方法可以遍历数组.而不是积累起来for循环和嵌套来处理列表和集合中的数据,利用这些方 ...

  7. 一篇文章图文并茂地带你轻松学完 JavaScript 事件循环机制(event loop)

    JavaScript 事件循环机制 (event loop) 本篇文章已经默认你有了基础的 ES6 和 javascript语法 知识. 本篇文章比较细致,如果已经对同步异步,单线程等概念比较熟悉的读 ...

  8. JavaScript 事件循环

    JavaScript 事件循环 事件循环 任务队列 async/await 又是如何处理的呢 ? 定时器问题 阻塞还是非阻塞 实际应用案例 拆分 CPU 过载任务 进度指示 在事件之后做一些事情 事件 ...

  9. javascript for循环

    2016年12月28日 20:01:54 星期三 html: <a href="aaaa">AAAA</a> <a href="bbbb&q ...

  10. Javascript for循环指定锚点跳转

    在某些使用多层嵌套for循环的场合里 会用到break和continue来中途跳转循环 break是跳出整个循环 continue是跳出当前循环,继续下次循环 而多层for循环嵌套里使用这两个关键字默 ...

随机推荐

  1. windows程序设计04_显示汉字的16进制

    看下面的代码 //utf-8编码 #include<stdio.h> int main() { char a[] = "中国"; printf("%x\n&q ...

  2. FPGA之驱动sdram控制兼容性移植实验

    cb早在2012年就推出了VIP 视频开发板 V1.4  这套开发板是ep2的,摄像头是ov7670,虽然不如当前的vip20强大,但也算是其雏形. 在vip20后期,cb对sdram以及其他模块进行 ...

  3. 3年java开发面试BAT,你必须彻底搞定Maven!

    前言 现在的Java项目中,Maven随处可见. Maven的仓库管理.依赖管理.继承和聚合等特性为项目的构建提供了一整套完善的解决方案,如果你搞不懂Maven,那么一个多模块的项目足以让你头疼,依赖 ...

  4. DRF源码系列分析

    DRF源码系列分析 DRF源码系列分析--版本 DRF源码系列分析--认证 DRF源码系列分析--权限 DRF源码系列分析--节流

  5. python 中 and or

    在Python 中,and 和 or 执行布尔逻辑演算,如你所期待的一样,但是它们并不返回布尔值:而是,返回它们实际进行比较的值之一. 一.and: 在布尔上下文中从左到右演算表达式的值,如果布尔上下 ...

  6. 初步了解JVM第三篇(堆和GC回收算法)

    在<初步了解JVM第一篇>和<初步了解JVM第二篇>中,分别介绍了: 类加载器:负责加载*.class文件,将字节码内容加载到内存中.其中类加载器的类型有如下:执行引擎:负责解 ...

  7. SpringBoot IoC启动流程、初始化过程及Bean生命周期各个阶段的作用

    目录 SpringBoot IoC启动流程.初始化过程及Bean生命周期各个阶段的作用 简述 首先明确IoC容器是啥 准备-SpringApplication的实例化 启动-SpringApplica ...

  8. appium+java(八)获取Toast内容信息

    前言 Appium中很经典的问题了,在两年前也就是2017年3月6号07:22分,我才看到appium1.6.3版本的发布,更新内容为Ios上可以实现Toast的获取,而Windows也就是安卓端,还 ...

  9. Cannot read property 'createElement' of undefined

    场景: 架构:React+TS+DVA   具体场景: 在将之前后缀为jsx的组件转化为tsx后缀的组件时,抛出Cannot read property 'createElement' of unde ...

  10. vue项目的开发

    vue项目的开发 我们已经通过命令行创建了一个vue项目,并且打开了这个项目.下面是这个文件的src文件夹,这个文件夹放了整个项目的核心代码. 一.vue文件的用处简介. 1.assets文件夹,用来 ...