目录
流程控制: 控制代码执行的结构顺序;
分为三种:
- 顺序结构: 代码按照先后顺序依次执行;
- 分支(选择)结构: 根据不同的条件,执行不同的的路径代码,从而得到不同的结果;
- 循环结构 :重复执行某些代码;
2.12 分支判断语句 (进行判断的)
JS中,可以根据不同的条件执行不同的代码。此时,就需要分支判断语句。
JS中,分支判断语句有两种: if 语句、 switch 语句 [switch 开关,转换] [else 其他的]
2.12.1 if语句
语法:
第一种: 单if判断 if ( 条件表达式) { 执行语句} 第二种: 多分支条件 if (条件表达式) { 执行语句} else if (条件表达式) { 执行语句} .... else if (条件表达式) {执行语句} 第三种: if else判断 if (条件表达式) {} else {条件表达式} //最后的else直接跟{} 第四种: if else if else判断 if (条件表达式) { 执行语句} else if (条件表达式) { 执行语句} else if (条件表达式) { 执行语句} .... .... else { 执行语句} //最后的else直接跟{}
2.12.2 switch语句
执行机制:
- 对switch()中的变量做判定,与每一个case值进行比对;
- 如果匹配成功,则执行对应的代码,执行完之后如果遇见了break就跳出switch语句。
- 如果没有遇见break会"掉"到下一个case中,不论case条件是否匹配 ;
- 如果没有任何一个case匹配上 会执行default 中的代码 default可以省略;
- switch 语句在比较值时使用的是全等操作符, (例如,字符串'10' 不等于数值 10);
语法: 注意 case 空格 比较值 : 冒号
switch (变量) {
case 常量1:语句1;
break;
case 常量2:语句2;
break;
case 常量3:语句3;
break;
...
default: //[default 默认;]
最后的执行语句; // 都不匹配时执行最后的default;
break;
}
// 获取用户输入
var day = +prompt("请输入数字");
switch写法
switch (day) {
case 0:
console.log("星期天"); break;
case 1:
console.log("星期一"); break;
case 2:
console.log("星期二"); break;
case 3:
console.log("星期三"); break;
case 4:
console.log("星期四"); break;
case 5:
console.log("星期五"); break;
case 6:
console.log("星期六"); break;
default:
console.log("输入错误");
}
if语句和switch语句的区别
- switch语句处理case的取值比较明确(特定值);
- if语句 处理范围判断;(大于或小于某个范围)
2.13 循环语句 (重复执行某些代码)
循环:指的是重复做一件事情。
在JS中,循环有3个。
-
while [while 在.....期间]
-
do while
-
for
注:写循环代码的时候,要格外注意死循环的情况。
2.13.1 do while循环
do...while的特点是不管条件成不成立,都会执行一次。
语法:
do{
} while()
do {
//循环体代码
} while(循环条件)
执行顺序:先执行一次 代码块中的代码,然后判断条件,如果条件为真 继续执行代码块中的代码,如果条件为假,终止循环.
//案例 求100内整数和;
// 初始化变量
var i = 1;
var sum = 0;
do {
sum += i;//循环体
i++;//自增
} while (i <= 100);//循环条件
console.log(sum);
do while的特点:先执行一次循环体的代码 再进行判定
2.13.2 while循环
语法:
while () {
}while (循环条件) {
//循环体代码
}
执行顺序:先判定, 当循环条件为true时,执行循环体, 当循环条件为false时,循环不开始直接跳过.
// 计算1-100之间所有数的和
// 初始化变量
var i = 1;
var sum = 0;
// 判断条件
while (i <= 100) {
// 循环体
sum += i;
// 自增
i++;
}
console.log(sum);
do..while循环和while循环非常像,二者经常可以相互替代,但是do..while的特点是不管条件成不成立,都会执行一次。
2.13.3 for循环
语法: for(){
}
for (1初始化表达式; 2判断表达式; 4递增(递减)表达式) {
3循环体代码
}
第一次执行: 1 2 3 4
之后的每一次执行: 2 3 4 2 3 4 2 3 4...
直到2的判定条件为fasle时,结束循环
初始化变量: 1 var 声明一个变量并赋值;
判断表达式: 2 终止的条件;
递增(递减)表达式: 4 对循环变量进行更新,(通常是递增递减);
执行顺序: 1243 ---- 243 -----243(直到判断条件变成false);
for (var i = 1; i<=100;i++){
console.log("hello")}
- 首先执行 var i= 1; 只执行一次;
- 再去i<=100;判断是否满足,满足执行循环体,不满足退出循环体;
- 循环体执行后,最后再去执行i++;(第一轮结束);
- 第二轮,先去判断i<=100,满足执行循环体,然后i++; 不满足退出循环;
- 以此类推;
拼接字符串: 通过引引加加; 例如: "今年是" + i + "年哦"
双重for循环
循环嵌套:是指在一个循环语句中再定义一个循环语句的语法结构.
例 :在for循环语句中,可以再嵌套一个for循环,这样的for循环语句我们称之为双重for循环。
双重for循环,外层循环一次,内层for循环全部执行;
可以把里面的循环看成是外层循环的语句;
continue和break区别:
break:立即跳出整个循环,即循环结束,开始执行循环后面的内容
continue:立即跳出当前循环,继续下一次循环(跳到i++的地方)
// continue 继续 跳过一次循环
for (var i = 0; i < 5; i++) {
if (i === 5) {
continue;
}
console.log(i); // 0 1 2 3 4
}
// break 打断 跳过整个循环
for (var i = 0; i < 5; i++) {
if (i === 2) {
break;
}
console.log(i); // 0 1
}