1. 循环语句
- 为什么要有循环:在开发中,难免会书写一些重复性的语句所以要使用循环(方便,懒)
- 纯手写存在的问题:重复代码过多;代码过多,不利于阅读和维护
- 优点:能很大程度帮助我们减少代码量
2. while循环
- while循环与if判断书写方式一样 while (条件) {要执行的的代码}
- 一个完整循环的必要内容: 初始化变量; 条件判断; 要执行的代码; 自身的改变;(初始化的改变) 例:
//+到100所以要用循环判断条件是该数字小于100,因为这个数字一直在+1,所以需要另外赋值一个数来计算总共的数
var num = 1
var total = 0
while (num <= 100) {
total += num
num++
}
console.log(total)
//1-100,设定一个初始化值为100,每次-1,加一个变量获取总和
var num1 = 100 //定义初始化100
var total1 = 0 //定义一个变量获取总数
while (num1 >= 1) { //循环,循环条件
total1 += num1 //要执行循环
num1-- //初始化改变
}
console.log(total1)
//1-100,3的倍数,用while和条件判断,if好点,定义一个变量获取总数和
var num2 = 1 //初始化变量
var total2 = 0 //初始化定义变量获取总数
while (num2 <=100) { //循环
if (num2 % 3 === 0){ //判断,循环条件
total2 += num2 //要执行循环
} num2++ //改变初始化条件
}
console.log(total2)
3. do...while循环
- 与while循环类似
- 语法:do {要执行的代码} while (条件)
- 不同点:while循环会先判断在输出,do...while循环会先输出在进行判断(至少会执行一次),在区间外(条件不符合)do...while至少会执行一次,在区间内(条件符合时)与while一样 例:
//出现多次用户框(循环内部)
//进行条件判断
//至少执行一次(do while)
//定义一个初始化变量判断(var)
do {
var keywords = prompt('请输入密码') - 0 //定义初始化变量,改变初始化变量
if(keywords === 12345){ //进行判断
console.log('密码正确') //密码枕骨全额进行输出
}
} while (keywords !== 12345) //循环条件
var num = 100
do {
console.log(num)
} while (num < 10) //会输出一次100
var num = 10
while (num < 10) {
console.log(num)
} //一次不会输出
4. for循环
- for 循环与while和do...while都属于循环的一种但是写法不太一眼
- 语法:for (1.初始化; 2.条件; 3.改变自身) {条件满足时,要执行的代码}
- for (var i = 0; i < 5; i++) {console.log('我是for循环)} 执行顺序:i === 0, i < 5成立, 执行代码, 执行i自身的改变
- 例:
//从1开始到100结束,每次+1,初始之为1,条件是小于等于100,需要一个变量来记录和
var sum
sum = 0
for (i = 0 ; i <= 100 ; i++){
sum += i
}
console.log(sum)
例2:
//计算1-100偶数,初始值为1,判断是否大于100,且必须是偶数,执行记录偶数相加,每次+1
var sum
sum = 0
for (i = 0; i <= 101;i++){
if (i % 2 === 0) {
sum += i
}
}
console.log(sum)
5. 流程控制语句
主要两个关键字
- break:在循环中没有进行完毕的时候,因为我设置的某一个条件满足了然后执行break关键字,循环直接提前终止 例:
for (var i = 1; i < 5; i++){
console.log('我吃了' + i '个包子')
if (i === 3) {
break
console.log('第3个包子掉地上了,我不吃了')
}
}//此时执行的结果为我吃了1个包子, 我吃了2个包子, 第3个包子掉地上了, 我不吃了.后续就不再执行了
- continue:在循环执行的过程中设置的某一个条件触发了,跳过本轮循环 例:
for (var i = 1; i < 5; i++){
console.log('我吃了' + i '个包子')
if (i === 3) {
continue
console.log('第3个包子掉地上了,我不吃了')
}
}//此时执行的结果为我吃了1个包子, 我吃了2个包子, 第3个包子掉地上了, 我不吃了, 我吃了4个包子, 我吃了5个包子
6. 循环嵌套
简单来说, 就是循环里面再写一个循环 注意:循环嵌套的时候, 初始化的变量不要相同
7. 向当前页面输入文本
document.write() document.write(‘< br >’)//向当前页面输入一个换行 例:
//输出一个9 * 9的 '*' 用for循环,内部执行每一行九个, 外部外部执行九行, 内部逻辑为变量i = 0; i < 9; 每次打印一个 '*' , 共执行9次
for (j = 0; j < 9; j++){
for(i = 0; i < 9; i++){
document.write('*')
} //内层循环控制有多少列
document.write('<br>')
} //外层循环控制有多少行
例2:
//输出9 9乘法表
//每一行内列数与行数相同,此时控制内循环的条件应与外循环一样的
//输出的结果通过 + 链接因为是String类型
for (j = 1; j<=9; j++){
for (i = 1; i<=j; i++){
document.write(i + '*' + j + '=' + i * j + ' ' + ' ')
}
document.write('<br>')
}