🖼️ Lyin's Room

Search

Search IconIcon to open search

Loop 循环

Last updated Unknown

# for

1
2
3
for (初始化变量; 条件表达式; 操作表达式) {
//循环体
}
  1. 初始化变量就是用var生命的一个普通变量,通常用于作为计数器使用
  2. 条件表达式就是用来决定每一次循环是否继续执行,就是终止的条件
  3. 操作表达式 是每次循环最后执行的代码,经常用于我们计数器变量进行更新(递增或者递减)
1
2
3
for (var i = 1; i <= 100; i++) {
 console.log('hello')
}
  1. 首先执行里面的计数器变量 var i = 1但是这句话在for里面只执行一次,i是index的意思。
  2. i<=100来判断是否满足条件,满足执行循环体,不满足结束
  3. 最后去执行 i++ 第一轮结束
  4. 接着去执行i<=100

# 执行不同的代码

1
2
3
4
5
6
7
8
9
for (var i = 1; i <= 100; i++) {
    if (i == 1) {
        console.log('1岁')
    } else if (i == 100) {
        console.log('100岁')
    } else {
        console.log('这个人今年' + i + '岁了')
    }
}

# 习题

  1. 求1-100之间奇数之和、偶数之和
1
2
3
4
5
6
7
8
9
var even = 0;
var odd = 0;
for (var i = 1; i <= 100; i++) {
 if (i % 2 == 0) {
 even = even + i;
}
} else {
 odd = odd + i;
}
  1. 求1-100之间所有能被3整数的数字和
1
2
3
4
5
6
var result = 0;
for (var i = 1; i <= 100; i++) {
	if (i % 3 == 0) {
	result = result + i;
	}
}
  1. 计算班级平均分
1
2
3
4
5
6
7
8
9
var num = prompt('请输入班级总人数')
var sum = 0;
var average = sum / num;
for (var i = 1; i <= num; i++) {
        var score = prompt('请输入第' + i + '个学生的成绩');
        sum += parseFloat(score) //string转换为number
    } 
    average = sum / num;
    alert(`共有${num}人,平均值是${average}`)
  1. 一行打印五颗行星
1
2
3
4
5
var str = ''
for (var i = 1; i  <= 5; i++) {
	str += '⭐'
}
console.log(str);

# String转为Number

Number( )、parseInt( )、parseFloat( )的用法及区别

# 双重for循环执行过程

|500 |500

  1. 打印五行五列星星
1
2
3
4
5
6
7
for (var i = 1; i <=5; i++) { //外部循环负责打印五行
	for (var j = 1; j <= 5; j++) {
	str += '⭐' 
	}
	// 如果一行打印完毕5个星星就要另起一行加\n
	str += '\n'
}
  1. 打印n行n列的星星
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
var rows = prompt('行数')
var cols = prompt('列数')
var str = '';
for (var i = 1; i <= rows; i++) {
	for (var j = 1; j <= cols; j++) {
	str += '*';
	}
	str += '\n';
}
console.log(str)
  1. 打印倒三角形
1
2
3
4
5
6
7
8
var str = '';
for (var i = 1; i <= 10; i++) { //外层循环控制行数
	for (var j = i; j <=10; j++) { //内层循环控制个数
	str += '♥'
	}
	str += '\n';
}
// 当i=1的时候,内层循环j = i = 1,始终小于10,j++,反复打印星星,一直加到j=10,不再满足条件,换行,内部循环了十次,外部开始循环第二次,i=2,内部再次循环。
  1. 打印九九乘法表
1
2
3
4
5
6
7
8
var str = '';
for (var i = 1; i <= 9; i++) { //i=行数
	for (var j = 1; j <= i; j++) { //j代表列数(一行的个数)
	str += j + 'x' + i + '=' + j * i + ' '
	}
	str += '\n'
}
console.log(str)

|500

# While 循环

|550

# While循环习题

  1. 打印1-100岁
1
2
3
4
5
var i = 1;
while (i<=100) {
console.log('今年'+ i +'岁')
i++
}
  1. 计算1-100之间所有整数的和
1
2
3
4
5
6
var j = 1;
var sum = 0;
while (j <= 100) {
sum += 1;
}
console.log(sum)
  1. 暗号练习
1
2
3
4
var message = prompt('暗号')
while (message !== 'die hard') {
	message = prompt('重新输入')
}

# do while

1
2
3
4
5
6
7
8
9
do {
	//循环体
} while (条件表达式)
//代码验证
var i = 1
do {
	console.log('print')
	i++; //否则死循环
} while (i <= 10);

# do while 暗号练习

1
2
3
do {
	var message = prompt('test')
} while (message !== 'die hard')

# continue关键字

只要遇见continue就立即退出当前次循环 e.g: 吃五个包子,吃到第三个发现continue,跳过第三个不吃,吃第四第五个。

1
2
3
4
5
6
for (var i = 1; i <= 5; i++) {
	if (i == 3) {
	continue
	}
	console.log(''+ i +''次循环)
}

# 习题

  1. 求1-100之间,除了能被7整除以外的整数和
1
2
3
4
5
6
7
8
var sum = 0;
for (var i = 1; i <= 100; i++) {
	if (i % 7 == 0) { //双等号
	continue;
	}
	sum += i;
}
console.log(sum)

# break关键字

break关键字用于立即跳出整个循环(循环结束)。 e.g: 吃五个包子,吃到第三个发现break,剩下的也不吃了。