所谓的循环结构,就是重复做一些事情,当循环次数多的时候,直接写多次相同的语句很麻烦,因此就有了循环结构,这样,相同的语句只需要写一次就行了。
循环结构主要有两种——for循环和while、do...while循环。至于数组的遍历之后再说。
for循环
格式:
for(初始语句;条件语句;步进语句){
//语句块
}
当进入for循环后,首先会运行初始语句,接着会判断条件语句是否为真,如果是则运行语句块,接着运行步进语句,然后再判断条件是否为真,为真则再次运行语句块,然后再次运行步进语句,如此循环往复,直到条件语句为否,结束循环。
【例4-1】
let sum=0;
for(let i=1;i<=10;i++){
sum+=i;
}
上面的语句就是使用for循环求1到10的和。首先,声明了一个变量叫做sum,初始值为0,接着开始循环,首先运行let i=1
声明了一个叫做i的变量初始值为1,当前i<=10
的值为真,所以运行里面的语句,将sum的值加上当前i的值赋值给sum,由于当前i为1,因此,是加1,继续运行i++
,i的值加上了1、变为了2,此时i<=10
依然为真,所以再运行里面的语句,但是当前i的值是2,索引就是在sum上加上了2而不是1,如此循环往复,直到i<=10
的值为假时。
while循环和do...while循环
格式:
while(条件){
// 语句块
}
do{
// 语句块
}while(条件)
上面第一个是while循环,第二个是do...while循环。
while循环的含义是当条件为真时,则循环运行语句块中的语句,直到条件为否。
do...while循环意思是:先运行一遍语句块,再判断条件,如果条件为真,则循环运行语句块,直到条件为否。
所以,while循环与do...while循环的主要区别在于后者会先运行一遍语句块(无论条件真否),而前者则不会。
【例4-2】使用while循环求1~10的和。
let sum=0;
let i=1;
while(i<=10){
sum+=i;
i++;
}
上面的代码和使用for循环求和的例子是等价的。
无论哪种循环,都还有另外一种方式跳出循环,也就是使用下文所述的break语句。
continue和break语句
continue语句指的是continue;
,break语句指的是break;
。
有时需要在循环体中控制循环,我们就可以利用这两条语句。
continue语句的含义是结束当次循环,之后的语句都不运行,直接到下一次的循环;break语句的含义是结束当前的所有循环,也就是说不再继续循环了。
语句之间的嵌套
各类结构、各类语句之间都是可以嵌套的,例如for循环套if、for循环套for循环、for循环套while、while套if、while套for等等,可以嵌套多层,但建议一般不要超过三层嵌套。
在这些情况下,break和continue指的都是最内层的该语句适用的结构,外层的结构还会继续运行。
网友评论