循环结构分析及示例
for
循环
for
循环是一种基于计数器的循环,允许自定义循环的初始化、条件和迭代步骤。
语法:
for (初始化表达式;测试表达式;更新表达式){
// 循环体
}
初始化表达式:在循环开始前执行一次,通常用于声明和初始化循环控制变量。
测试表达式:在每次迭代前执行,如果为
true
,则执行循环体;如果为false
,则退出循环。更新表达式:在每次迭代后执行,通常用于更新循环控制变量。
示例:打印1到10的整数。
for (var i = 1; i <= 10; i++) {
console.log(i);
}在这个代码块中,
var i = 1
是初始化表达式,它将变量i
初始化为1。i <= 10
是测试表达式,只要i
的值小于或等于10,循环就会继续执行。i++
是更新表达式,每次循环迭代后i
的值会增加1。
while
循环
while
循环会持续执行,只要其测试表达式的结果为true
。
语法:
while (测试表达式) {
// 循环体
}测试表达式:在每次迭代前进行测试,如果为
true
,则执行循环体;如果为false
,则退出循环。
示例:打印1到10的整数
var j = 1; // 初始化
while (j <= 10) {
console.log(j);
j++; // 迭代(重要,否则会导致无限循环)
}在这个代码块中,
j
被初始化为1,然后进入while
循环。只要j
小于或等于10,循环就会继续执行。每次迭代后,j
的值会增加1,以确保最终能够退出循环。
do...while
循环
do...while
循环至少执行一次,之后每次迭代都会检查测试表达式。
语法:
do {
// 循环体
} while (测试表达式);测试表达式:在每次迭代后进行测试,如果为
true
,则继续执行下一次迭代;如果为false
,则退出循环。
示例:至少执行一次循环体。
var k = 1; // 初始化
do {
console.log(k);
k++; // 迭代(重要,否则会导致无限循环)
} while (k <= 10);在这个例子中,循环体至少执行一次,然后检查
k
是否小于或等于10。如果是,循环继续执行;如果不是,循环退出。
控制流程语句:break
和continue
-
break
语句:用于立即退出循环。无论是for
、while
还是do...while
循环,break
都会立即终止循环的执行。 -
continue
语句:用于跳过当前迭代的剩余部分,并立即开始下一次迭代。它只影响当前的迭代过程。
示例:使用break
和continue
。
for (var i = 1; i <= 10; i++) {
if (i === 5) {
break; // 当i等于5时,退出循环
}
console.log(i); // 打印1到4和6到10的数字
}for (var i = 1; i <= 10; i++) {
if (i % 2 === 0) {
continue; // 跳过偶数
}
console.log(i); // 只打印奇数
}在第一个示例中,当
i
等于5时,break
语句被执行,导致循环立即退出。在第二个示例中,当i
为偶数时,continue
语句被执行,导致跳过当前迭代的console.log(i)
,只打印奇数。
综合实例源码
circulation.html<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>//for循环打印1-10for(var a=1; a<=10;a++){console.log(a);}//while循环打印11-20var b = 10;while(b>=10 && b<=20){console.log(b);b=b+1; //b++ }//do-while循环打印20-30var c = 20;do{if(c>30){break;}else{console.log(c);c++; //c=c+1}}while(c>20 && c<=100)//for循环打印0-100中的奇数for(var i=100;i>=0;i--){if(i%2!=0){console.log(i);}else{console.log('----'+"偶数:"+i+'----');continue;}}//while循环打印0-100中的偶数var w = 0;while(w<=100){if(w%2==0){console.log('这是while循环中的偶数'+w);}else{w++;continue;}w++;}//do while循环打印奇数及偶数d = 0do{if(d%2==0){console.log('这是偶数'+d);}else if(d%2!=0){console.log('这是奇数'+d);}d++;}while(d<=100)</script>
</body>
</html>
实例解析
1. for
循环打印1-10
for(var a=1; a<=10; a++) {
console.log(a);
}
这个循环会打印从1到10的整数。a
初始化为1,只要a
小于或等于10,循环就会继续。每次迭代后,a
增加1。
2. while
循环打印11-20
var b = 10;
while(b>=10 && b<=20){
console.log(b);
b=b+1; //b++
}
这段代码首先定义了一个变量 b
并初始化为 10
。接下来,它进入一个 while
循环,此循环的条件是 b
必须同时满足 >=10
和 <=20
。在循环体中,执行以下操作:
- 使用
console.log(b);
打印当前的b
值。 - 通过
b=b+1
(等同于b++
)来增加b
的值。
循环逻辑
- 当
b
初始化为10
时,因为10 >= 10
且10 <= 20
成立,所以进入循环。 - 在每次循环中,打印当前的
b
值,然后b
的值增加1
。 - 当
b
增加到21
时,循环条件21 <= 20
不再成立,所以循环结束。
3. do...while
循环打印20-30
var c = 20;
do {
if(c > 30) {
break;
} else {
console.log(c);
c++; // 相当于 c=c+1
}
} while(c > 20 && c <= 100);
这个循环会打印从20到30的整数。c
初始化为20,循环至少执行一次。如果c
大于30,循环通过break
语句退出。否则,打印c
的值,然后c
增加1。循环继续,只要c
在20到100之间。
4. for
循环打印0-100中的奇数
for(var i=100; i>=0; i--) {
if(i % 2 != 0) {
console.log(i);
} else {
console.log('----' + "偶数:" + i + '----');
continue;
}
}
for 循环逻辑
- 初始化:变量
i
初始化为100
。- 条件:循环持续执行直到
i
降到0
以下。- 迭代:每次循环结束后,
i
的值递减1
(i--
)。循环体内的条件判断
- 使用
if (i % 2 != 0)
检查i
是否为奇数:
- 如果是奇数:使用
console.log(i);
直接打印该数值。- 如果是偶数:
- 使用
console.log('----' + "偶数:" + i + '----');
打印格式化的字符串,标明它是一个偶数。- 执行
continue;
语句,即跳过本次循环的剩余部分,直接进入下一次迭代。
5. while
循环打印0-100中的偶数
var w = 0;
while(w <= 100) {
if(w % 2 == 0) {
console.log('这是while循环中的偶数' + w);
} else {
w++;
continue;
}
w++;
}
while 循环逻辑
- 初始化:变量
w
初始化为0
。- 条件:循环持续执行直到
w
超过100
。循环体内的逻辑
- 使用
if (w % 2 == 0)
检查w
是否为偶数:
- 如果是偶数:使用
console.log('这是while循环中的偶数' + w);
打印偶数,并附带一段文字说明,标明它是在while
循环中被识别和打印的。- 否则(即
w
是奇数时):
- 首先增加
w
的值(w++
),确保跳过奇数,因为continue
语句将跳过循环的剩余部分,直接进入下一次迭代的条件判断。- 在
if
语句之后,无论是打印了偶数还是遇到了奇数并执行了continue
,w
的值都会再次通过w++
递增,以确保下一次循环的进行。
6. do...while
循环打印奇数及偶数
var d = 0;
do {
if(d % 2 == 0) {
console.log('这是偶数' + d);
} else if(d % 2 != 0) {
console.log('这是奇数' + d);
}
d++;
} while(d <= 100);
这个循环会打印0到100(包括100)的所有整数,并标明每个数字是奇数还是偶数。循环使用do...while
结构,至少执行一次。然后,根据d
的奇偶性打印相应的消息,之后d
增加1。循环继续,只要d
小于或等于100。