流程控制
分支语句
- 我们的js代码都是按顺序执行的(从上往下)
- 逻辑分支就是根据我们设定好的条件来决定要不要执行某些代码
if条件分支结构 (重点)
语法形式
- if语句
- if(条件){代码}
- 条件为true的时候,执行{}里面的代码:条件为false,则不执行
// if(age >= 18){
// // 这里面的代码,会在age>=18为true才执行
// console.log("学车");
// }
- if else 语句
- if (条件) {代码1}else{代码2}
- 条件为true时执行代码1
- 条件为false时执行代码2
- 两个{}内的代码,必定会执行一个
if(age >= 18){
console.log("您已经达到法定学车年龄。");
}else{
console.log("抱歉,您还未达到法定学车年龄。");
}
- if … else if语句
- if(条件1){代码1}else if(条件2){代码2}
- 从头到尾按照顺序依次执行判断每一个条件
- 哪个条件为true就会执行该条件后面的代码
- 如果前面的条件有一个满足了,后面就不再执行
- 多个{}内部的代码最多执行一个
if (age >= 18) {
console.log("您已经达到法定学车年龄。");
} else if (age >= 13) {
console.log("您已经是青少年了。");
} else if (age >= 6) {
console.log("您是儿童。");
}
- if … else if … else语句
- if(条件1){code1}else if(条件2){code2}else{code3}
- 从头到尾按照顺序依次判断每个条件
- 哪个条件满足,就执行那个条件后面的代码
- 如果所有条件都不满足,那就执行else后面的代码
- 一旦前面的条件满足了,后面就不再执行
- 多个{}内部的代码最多执行一个
if (age >= 18) {
console.log("您已经达到法定学车年龄。");
} else if (age >= 13) {
console.log("您已经是青少年了。");
} else if (age >= 6) {
console.log("您是儿童。");
} else {
console.log("您还太小,不能报名学车。");
}
console.log("后续代码");
switch(重点)
-
switch:开关,岔路
-
case:方案、情况
-
break:打断,断开
-
default:默认
-
基础语法
switch(要判断的变量){
case 情况1:
满足情况1时,执行的代码
break;
case 情况2:
满足情况2时,执行的代码
break;
case 情况3:
满足情况1时,执行的代码
break;
case 情况4:
满足情况4时,执行的代码
break;
…
default:
所有情况都不满足时执行的代码
}
注意:
- 要判断的变量,必须和case后面的内容 === 为true才叫做满足条件
- switch的判断,只能判断准确等于哪一个值,不能进行范围的判断
- 也不能够尽兴逻辑运算的判断
- default 可以不写,推荐写上
不写的时候,如果所有的case都不满足,就没有代码执行 - break 必须书写,如果不写就会穿透
穿透:下一个case不管成立与否,都会执行,直到switch结束或遇到break - 穿透的时候,会从第一个满足条件的case开始向下穿透
三元表达式(重点)
-
三元表达式/三目运算符
- 两个符号和三个数据组成的运算符
- 是一个if else语句的简写形式
-
语法:
- “条件” ?满足 :不满足
- 如果条件满足,就执行满足的代码
- 如果条件不满足,就执行不满足的代码
- 每个代码执行区间,只能书写一句话
- 只能简写if else语句!!!!
- 可以用来执行代码,也可以赋值
循环语句
循环结构,就是根据某些给出的条件,重复的执行同一段代码
循环语句
- 循环:重复执行
- 循环需要几个要素
- 什么时候开始循环
- 什么时候结束循环
- 步长:每次循环变量改变多少
while 语句
- 当满足条件时去执行代码,一旦满足不了就不执行
- 语法:while(条件){循环的代码/循环体}
- 循环控制变量
在循环中,用来控制循环
开始 结束 步长 都能控制循环的次数
// 定义循环的开始
// var n = 1;
// // 确定循环的结束
// while (n <= 3) {
// console.log("我执行了");
// // 确定循环的步长
// n = n + 2;
// }
// 求1~100内的所有偶数
// 确定开始循环 1
// 确定结束 n <= 100;
// 确定步长 每次 +1
var n = 1;
while (n <= 100) {
if (n % 2 == 0) {
console.log(n);
}
n++;
}
// 利用循环求1~100内所有3的倍数之和
// 确定开始循环 1
// 确定结束 n <= 100;
// 确定步长 每次 +1
/*
分析:
拿到1~100的所有数字
判断是不是3的倍数
如果是 累加起来
如果不是,什么都不做
*/
var m = 1;
var res = 0;
while (m <= 100) {
if(m % 3 == 0){
res += m
}
m++;
}
console.log(res); // 1683
do … while语句
先执行一遍循环体,再判断条件
语法:do{code}while(条件)
var num = 5;
do{
console.log("我执行可一次");
num++;
} while(num < 10)
for 语句 非常常用
语法:for(定义初始变量;条件判断;步长){代码}
注意:循环时条件判断、步长、代码三者在循环
// for(var i = 0; i <= 10; i++){
// console.log(i);
// }
var res = 0;
for(var i = 1; i <= 100; i++){
if(i % 3 == 0){
res += i;
}
}
console.log(res); // 1683
循环控制语句
break
直接结束整个循环
continue
跳过当前的循环,继续下一次循环
//for(var i = 1; i <= 100; i++){
// console.log("开始循环");
// if(i == 3){
// console.log("循环到3时跳出");
// break;
// }
//}
for(var i = 1; i <= 100; i++){
if(i == 3){
console.log("循环到3时跳过");
continue;
}
console.log("当前循环次数:" + i);
}
循环的嵌套
for(var i = 1; i <= 3; i++){
for(var j = 1; j <= 3; j++){
// 外层循环走一步,内层循环走全程
console.log(i,j);// 11 12 13 21 22 23 31 32 33
}
}