流程控制:控制代码或程序执行的顺序。
流程控制语句可以分为以下结构:
-
顺序结构:默认代码从上到下执行
-
选择结构:if,switch
-
循环结构:for while do-while for-in
-
关键字:continue break
目录
选择结构
if:条件:可以是表达式也可以是单个数据(单个数据自动判断数据的真假) else可以省略
单分支-if
-
语法:if(条件){条件成立的代码段}
双分支-if
-
语法:if(条件){条件成立的代码段}else{条件不成立的代码段}
多分支
多分支 -if
-
语法:if(条件){条件成立的代码段}else if(条件){条件成立的代码段}....
-
语法:if(条件){条件成立的代码段}else if(条件){条件成立的代码段}....else{以上条件都不成立执行代码段}
多分支-switch
-
语法
//每一个case都相当于一个条件 switch(值){ case 比较值:当前条件成立执行的代码段; break; case 比较值:当前条件成立执行的代码段; break; default:以上条件都不成立执行的代码段; }
-
注意问题
-
值得比较是绝对比较,不同数据类型一定不相等
-
case穿透:当前case对应的情况成立,不仅执行对应的代码,还会依次将后边case对应的情况执行,解决case穿透在当前代码结束假break; 一旦遇到break,整个switch就结束了,后边代码就不执行了
-
swicth和if的区别
-
if判断可以解决js当中所有判断,if判断针对是一个条件
-
switch判断一般做值得比较 判断情况相对单一
循环结构
for循环
作用:让特定的代码段执行指定的次数
语法:for(表达式1;表达式2;表达式3){循环体}
for(var i = 1;i<=5;i++){ console.log("hello world"); }表达式1:设置初始值
表达式2:循环条件,终值
表达式3:循环变量 计数 循环体->特定的代码段
for循环的嵌套
var arr = [[10, 20, 30], ["a", "b", "c"], ["hello", "world"]];
// 获取小数组中的每一项
// 外层for循环获取当前数组中的每一项
for (var i = 0; i < arr.length; i++) {
// 当前项
var curArr = arr[i];
// 循环当前这一项
for (var j = 0; j < curArr.length; j++) {
console.log(curArr[j]);
}
}
for-in循环
for-in 一般用来迭代对象
基本语法:for(var 变量名 in 对象){循环体}
var stu1 = {
name:"王五",
age:20,
sex:"男",
};
// 迭代(循环)对象
// for(var 变量名 in 对象){循环体}
for(var key in stu1){
console.log(key,stu1[key]); //name 王五 age 20 sex 男
}
while
语法:
设置初始值 while(条件){ 循环体->做的事情 更新循环变量 }// 输出1-10
var i = 1;
while(i<=10){
console.log(i);
i++;
}
do-while
语法:
设置初始值 do{ 循环体->做的事情 更新循环变量 }while(条件)// 输出5-1
var i = 5;
do{
console.log(i);
i--;
}while(i>=1);
-
while 和 do-while区别: while是先看条件,do-while先执行do中代码段,不管条件成立与否至少执行一次
for和while的区别
-
for循环一般来说应用于循环次数确定,初始值和终值是已知的
-
while循环一般应用于循环次数不确定,已知的是循环条件
关键字
continue和break都是用来终止循环操作的
continue
循环中一旦遇到continue,终止当前这一次循环,进入到下一次循环
// 吃汤圆一共5颗,吃到底3颗时,汤圆坏了,就跳过这个汤圆。
for (var i = 1; i <= 5; i++) {
// 第3颗坏了
if (i == 3) {
console.log("坏了~~~");
continue;
}
console.log("我吃到第" + i + "颗汤圆~~~");
}
break
遇到break,终止整个循环,循环就结束了
// 吃汤圆一共5颗,吃到第3颗,有老鼠,就停止吃汤圆了
for (var j = 1; j <= 5; j++) {
// 吃到底3颗,有老鼠
if (j == 3) {
console.log("有老鼠~~");
break;
}
console.log("我吃到第" + j + "颗汤圆~~~");
}