For 循环
for (let i = 0 ; i < 10 ; i++ ) {
code;
}
/*
let i = 0 初始化条件 ->只执行一次初始化
当 i=0 时,循环开始
i < 10 判断条件 当不满足此条件时 退出循环
i++ 循环条件,每次“循环体”执行完毕
i 本身产生变化 -> i+=1
*/
For 循环的特殊写法
for(let i=0;i<10; ){
code;
}
for(let i=0; ; i++){
code;
}
for(let i=0; ; ){
code;
}
for( ; ; ){
code;
}
a. For循环中的 i 可以看作是一个局部变量 (可以在for中使用)
b. 循环条件是可以根据实际情况更改的
c. 当修改循环条件时,要确保循环可以向着终点
d. 开发中,要避免死循环
//打印输出数组中的所有元素
//数组有一个属性 arr.length 长度
//长度:数组中有多少个元素
//注意区分长度和下标
for (let i=0 ; i < arr.length ; i++ ) {
console.log(arr[i]);
}
//数组中最后一个元素 且不是undefined
console.log(arr[arr.length-1]);
// 找出数组中的最大值
let max;
for (let i = 0; i < arr.length; i++) {
if (i != 0) {
max < arr[i] ? max=arr[i] : max;
} else {
max = arr[0];
}
}
console.log(max);
//判断一个数在数组中是否存在,如果存在,返回它的下标
//如果不存在,返回 -1
function findArr(num) {
for (let i=0;i<arr.length;i++) {
if (arr[i] == num ) {
return i;
}
}
return -1;
}
console.log(findArr(100));
For in 循环
let arr = [1,2,3,4,5];
for (let a in arr) {
//console.log(a); 0 1 2 3 4
console.log(arr[a]); //1 2 3 4 5
}
能做的事情较少,只能做遍历操作
While 循环
let a = 10; // 初始化条件
while(a < 100){ // 循环判断条件
console.log(a); //循环体
a++; // 循环条件
}
/*
今天我们公司有10个人
每年公司会以百分之10的比重招人
哪一年公司人数突破100人
今年是2022年
*/
let people = 10;
let year = 2022;
while (people <= 100) {
people *= 1.1;
year += 1;
}
console.log(year);
a.初始化条件
b.判断条件
c.执行循环体
d.自增
do...while 循环
let a = 10; // 初始化条件
do { // 做xxx
console.log(a); // 循环体
a++; //循环条件
} while (a>100) // 判断
do...while 和 while 的区别
do...while: 先执行一次,再判断,无论条件是否成立,都至少执行一次
while: 如果条件不成立,一次都不执行
总结
while 循环 | for 循环 |
---|---|
初始化条件不好控制 | 每个for循环的初始化条件都是单独的 |
循环条件不好控制 | 每个for循环的a++都是隔离的 |
写函数时,返回值便于管理 | 写函数时,返回值不便于管理 |
死循环:
for ( ; ; ) { }
while ( true ) { }
do { } while ( true );