初识JS第三天

113 阅读1分钟

1. 循环语句

  1. 为什么要有循环:在开发中,难免会书写一些重复性的语句所以要使用循环(方便,懒)
  2. 纯手写存在的问题:重复代码过多;代码过多,不利于阅读和维护
  3. 优点:能很大程度帮助我们减少代码量

2. while循环

  1. while循环与if判断书写方式一样 while (条件) {要执行的的代码}
  2. 一个完整循环的必要内容: 初始化变量; 条件判断; 要执行的代码; 自身的改变;(初始化的改变) 例:
 //+到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循环

  1. 与while循环类似
  2. 语法:do {要执行的代码} while (条件)
  3. 不同点: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循环

  1. for 循环与while和do...while都属于循环的一种但是写法不太一眼
  2. 语法:for (1.初始化; 2.条件; 3.改变自身) {条件满足时,要执行的代码}
  3. for (var i = 0; i < 5; i++) {console.log('我是for循环)} 执行顺序:i === 0, i < 5成立, 执行代码, 执行i自身的改变
  4. 例:
//从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. 流程控制语句

主要两个关键字

  1. break:在循环中没有进行完毕的时候,因为我设置的某一个条件满足了然后执行break关键字,循环直接提前终止 例:
for (var i = 1; i < 5; i++){
  console.log('我吃了' + i '个包子')
  if (i === 3) {
    break
    console.log('第3个包子掉地上了,我不吃了')
  }
}//此时执行的结果为我吃了1个包子, 我吃了2个包子, 第3个包子掉地上了, 我不吃了.后续就不再执行了
  1. 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 + '&nbsp' + '&nbsp')
  }
  document.write('<br>')
}