欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

第2记:流程控制语句篇

程序员文章站 2022-06-02 20:09:30
...


一、分支结构

1、 if…else

  简单例子:判断是否闰年
  let year = prompt('请输入年份')
  
  if (year  % 4 == 0 && year  % 100 == 0 || year  % 400 == 0) {
    alert('是闰年')
  } else {
    alert('不是闰年')
  }

2、 switch…case

1. switch 语句也是多分支语句也可以实现多选1
	
2.语法结构switch转换、开关case小例子或者选项的意思
	
3.执行思路:利用我们的表达式的值和 case 后面的选项值相匹配如果匹配上,就执行该case里面的语句如果都没有匹配上,那么执行default里面的语句
	
switch(表达式){
	case value1:
		执行语句1;
		break;
	case value2:
		执行语句2;
		break;
	default:
		执行最后的语句;
}

switch 穿透

	//switch 穿透
  let letter = prompt('请输入字母:')
  switch (letter) {
    case 'a':
    case 'e':
    case 'i':
    case 'o':
    case 'u':
      alert("元音")
      break;
    case 'y':
    case 'w':
      alert("半元音")
      break;
    default:
      alert("辅音")
  }

二、break 和 continue

1. break关键字

break 关键字用于立即跳出整个循环(循环结束)。
例如,吃5个包子,吃到第3个发现里面有半个虫子,其余的不吃了

  for (let i = 1; i <= 5; i++) {
    if (i == 3) {
      break;  // 只要遇见 contihue就退出本次循环直接跳到i++
    }
    console.log(i);
  }
  //输出: 1 2

2. continue关键字

continue关键字用于立即跳出本次循环继续下一次循环(本次循环体中continue之后的代码就会少执行一次)。
例如,吃5个包子,第3个有虫子,就扔掉第3个,继续吃第4个第5个包子,

其代码实现如下∶

  // continue关键字
  for (let i = 1; i <= 5; i++) {
    if (i == 3) {
      continue;  // 只要遇见 contihue就退出本次循环直接跳到i++
    }
    console.log(i);
  }
  //输出: 1 2 4 5

再来一个例子:求1~100 之间,除了能被7整除之外的整数和

  let sum = 0
  for (let i = 1; i <= 100; i++) {
    if (i % 7 == 0) continue //能被7整除就跳出本次(不执行下面了),继续下一次循环
    sum += i
  }
  console.log(sum)

三、循环

1、for 循环

  for (let i = 1; i <= 5; i++) {
    console.log(i);
  }
  //1 2 3 4 5

双重for循坏,外层循环一次,内层for循环全部执行

 //九九乘法表:
 //外层的for循环控制行数i ,循环9次,可以打印9行
 //内层的 for循环控制每行公式j
 //核心算法:每一行公式的个数正好和行数一致,j<= i;1
 //每行打印完毕,都需要重新换一行
  let str = ''
  for (let i = 1; i <= 9; i++) {
    for (let j = 1; j <= i; j++) {
      str += `${i} x ${j} = ${i * j} \t`
    }
    str += '\n'
  }
  console.log(str)

第2记:流程控制语句篇

2、for…in / for…of 循环

1、从遍历数组和字符串角度来说,for···in遍历出来的是key(即下标),for···of遍历出来的是value(即数组的值)

  let arr = [996, 886, 666];
  //for···in遍历出来的是key(即下标)
  for (let i in arr) {
    console.log(i);   //0,1,2
  }
  //for···of遍历出来的是value(即数组的值)
  for (let i of arr) {
    console.log(i);   //996,886,666
  }

2、从遍历对象的角度来说,for···in会遍历出来的为对象的key,但for···of会直接报错。

  var obj = { name: "Bob", age: 25 };
  for (var i in obj) {
    console.log(i)  // name age
  }
  for (var i of obj) {
    console.log(i)   //报错 obj is not iterable
  }

如果要使用for…of遍历普通对象,需要配合Object.keys()一起使用。

var person={
    name:'coco',
    age:22,
    locate:{
        country:'China',
        city:'beijing',
    }
}
//使用Object.keys()方法获取对象key的数组
for(var key of Object.keys(person)){
    console.log(key+": "+person[key]);
    //name: coco,
    //age: 22,
    //locate: [object Object]
}

3、while 循环

  while (条件表达式) {
	循环体
  }

执行思路: 当条件表达式结果为true,则执行循环体,否则退出循环

  let num = 1
  while (num <= 5) {
    console.log(num)
    num++
  }
 //1 2 3 4 5
 
 //没有num++ ,就进入死循环了

4、do while 循环

do… while语句其实是while语句的一个变体。
该循环会先执行一次代码块,然后对条件表达式进行判断,如果条件为真,就会重复执行循环体,否则退出循环

  let num = 1
  do {
    console.log(num)
    num++
  } while (num <= 5)
 // 1 2 3 4 5

执行思路:
1、先执行一次循环体代码
2、再执行条件表达式,如果结果为true,则继续执行循环体代码,如果为false,则退出循环,继续执行后面代码
注意∶先再执行循环体,再判断,我们会发现do…while循环语句至少会执行一次循环体代码

相关标签: 前端爬坑日记