循环
JS中主要有三种循环语句:
- for循环
- while循环
- do…while循环
for循环
在程序中,一组被重复执行的语句被称之为循环体,能否继续重复执行,取决于循环的终止条件。由循环体及循环的终止条件组成的语句,被称之为循环语句
语法结构
for(初始化变量;条件表达式;操作表达式){
//循环体
}
示例:
// 求1-100所以的整数和
var sum = 0;
for (var i = 1; i <= 100; i++) {
var sum = sum + i;
}
console.log(sum);
// 4.求1-100之间所有偶数和奇数的和
var sum1 = 0;
var sum2 = 0;
for (var i = 1; i <= 100; i++) {
if (i % 2 == 0) {
sum1 += i;
} else {
sum2 += i;
}
}
console.log('偶数和为' + sum1);
console.log('奇数和为' + sum2);
一行打印5颗星星
采用追加字符串的方式
var str='';
for(var i =1;i<=5;i++){
str = str + '⭐';
}
双重for循环
打印5行5列星星
- 外层循环负责行
- 内层负责列
var str='';
for(var i =1;i<=5;i++){
for(var j=1;j<=5;j++){
str = str + '⭐';
}
str = str + '\n';//一行结束,换行
}
打印倒三角
![image-20211217215106857](https://cdn.jsdelivr.net/gh/Astrid-kedaya/picture/img/image-20211217215106857.png)
- 外层的 for 控制行数 i ,循环10次可以打印10行
- 内层的 for 控制每行的星星个数 j
- 核心算法:每一行星星的个数: j = i ; j <= 10; j++
- 每行打印完毕后,都需要重新换一行
var str='';
for(var i=1;i<=10;i++){
for(var j=i;j<=10;j++){
str = str + '⭐';
}
str = str + '\n';
}
打印正三角
![image-20211217215737079](https://cdn.jsdelivr.net/gh/Astrid-kedaya/picture/img/image-20211217215737079.png)
var str='';
for(var i =1;i<=10;i++){
for(var j=1;j<=i;j++){
str = str + '⭐';
}
str = str + '\n';
}
九九乘法表
var str='';
for(var i =1;i<=10;i++){
for(var j=1;j<=i;j++){
str += j + 'x' + i + '=' + i*j + '\t';
}
str = str + '\n';
}
while循环
语法结构
while(条件表达式) {
//循环体
}
- 先执行条件表达式,如果结果为 true,则执行循环体代码;如果为 false,则退出循环
- 执行循环体代码
- 循环体代码执行完毕后,程序会继续判断执行条件表达式,如条件仍为true,则会继续执行循环体,直到循环条件为 false 时,整个循环过程才会结束
注意:
-
使用 while 循环时一定要注意,它必须要有退出条件,否则会称为死循环
-
while 循环和 for 循环的不同之处在于 while 循环可以做较为复杂的条件判断,比如判断用户名和密码
示例:
var figure = 1;
var sum = 0;
while (figure <= 100) {
sum += figure;
figure++;
}
console.log('1-100的整数和为' + sum);
do while循环
语法结构
do{
//循环体
}while(条件表达式)
- 先执行一次循环体代码
- 再执行表达式,如果结果为true,则继续执行循环体代码,如果为false,则退出循环,继续执行后面的代码
- 先执行再判断循环体,所以 do while 循环语句至少会执行一次循环体代码
do while 和 while 不同在于 do while 先执行一次循环在判断条件
示例:
//需求:弹出一个提示框, 你爱我吗? 如果输入我爱你,就提示结束,否则,一直询问
do {
var love = prompt('你爱我吗?');
} while (love != '我爱你');
alert('登录成功');
continue 关键字
continue关键字用于立即跳出本次循环,继续下一次循环(循环体中 continue 之后的代码就会少执行一次)
示例:
//求1~100之间,除能被7整除之外的整数和
var sum=0;
for(var i = 1;i <= 100;i++){
if(i % 7 == 0){
continue;
}
sum += i;
}
break 关键字
break关键字用于立即跳出整个循环
断点调试
断点调试可以帮我们观察程序的运行过程
步骤:
- 浏览器按 F12 --> sources --> 找到需要调试的文件 --> 在程序的某一行设置断点 --> 刷新浏览器
- Watch:监视,通过watch可以监视变量的值的变化
- F11:程序单步执行,此时观察watch中变量的值的变化