JavaScript:四.流程控制
4.1条件语句
选择结构语句指的是根据语句中的条件进行判断,进而执行与条件相对应的代码。选择结构语句也称为条件判断语句。
4.1.1 If条件语句
示例代码如下:
<script>
var age=19 //声明变量 age 并赋值为 19
if(age>=18){
console.log('已成年') // 在控制台输出“已成年”
}
</script>
4.1.2 If-else 条件句
示例代码如下:
var age=15 // 声明变量 age
if (age>=18){
console.log('已成年') //当age>=18时控制台输出'已成年'
}else{
console.log('未成年') //当she<=18时控制台输出'未成年'
}
4.1.3 If-else-if-else
案例:
使用 if…else if…else 语句实现对一个学生的考试成绩按分数进行等级的划分:90~100 分为优秀,80~90 分为良好,70~80 分为中等,60~70 分为及格,分数小于 60 则为不及格。
示例代码如下:
var score = 55;
if (score >= 90 && score <= 100) {
console.log('你的成绩为优秀');
} else if (score >= 80 && score < 90) {
console.log('你的成绩为良好');
} else if (score >= 70 && score < 80) {
console.log('你的成绩为中等');
} else if (score >= 60 && score < 70) {
console.log('你的成绩为及格');
} else if (score < 60) {
console.log('你的成绩为不及格');
}
在JavaScript中,90<=score<=100 这种写法并不会按预期工作,因为它会被解析为 (90 <= score) <= 100
4.1.4 Switch 语句
使用 switch 语句判断变量 week 的值,若 week 变量的值为 1~6 时输出“星期一”~“星期六”,为 0 时输出“星期日”,若没有与 week 变量的值相等的 case 值时输出“错误”。
示例代码如下:
var week=2;
switch(week){
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('输入错误')
}
4.2 循环结构
循环结构是为了在程序中反复执行某个功能而设置的一种程序结构,它用来实现一段代码的重复执行。
循环语句由循环体和循环的终止条件组成。
- 循环体:一组被重复执行的语句。
- 循环的终止条件:循环结束的条件。
• for - 循环代码块一定的次数
• for/in - 循环遍历对象的属性
• while - 当指定的条件为 true 时循环指定的代码块
• do/while - 同样当指定的条件为 true 时循环指定的代码块
4.2.1 for 循环语句
条件表达式:用来决定每一次循环是否继续执行,如果结果为true就继续循环,否则就退出 循环
操作表达式:就是每次循环最后执行的代码。
经常用于我们计数器变量进行更新(递增或者递减)
利用 for 语句在控制台输出 1~100 的整数,示例代码如下:
<script>
for(var i=1;i<=100;i++){
document.write(i)
}
</script>
① 执行“var i = 1”初始化变量。
② 判断“i <= 100”是否为 true,如果为 true,则向下执行,反之,结束循环。
③ 执行循环体,通过“console.log(i)”输出变量 i 的值。
④ 执行“i++”,将 i 的值加 1。
⑤ 判断“i <= 100”是否为 true,和第②步相同。只要满足“i <= 100”这个条件,就会一 直循环。当 i 的值加到 101 时,判断结果为 false,循环结束。
4.2.2循环嵌套
循环嵌套是指在一个循环语句中再定义一个循环语句的语法结构
语法:
for (外层的初始化变量; 外层的条件表达式; 外层的操作表达式) {
for (里层的初始化变量; 里层的条件表达式; 里层的操作表达式) {
执行语句;
}
}
循环过程
外层循环一次,里面循环全部
for (var i = 1; i <= 3; i++) {
console.log('这是外层循环第' + i + '次');
for (var j = 1; j <= 3; j++) {
console.log('这是里层循环的第' + j + '次');
}
}
4.2.3 for…in 循环
for…in 语句
用于对数组或者对象的属性进行循环/迭代操作。
注:当可迭代对象中的元素全部遍历完后for循环停止运行。
语法:
for(var v in arr/obj){…………}
v-variable:
必选项。一个变量,它可以是obj的任一属性或arr的任一属性
obj,arr
可选项。要在其上遍历的对象或数组
当arrObj是数组时,v代表索引
当arrObj时对象时,v代表属性
例:
var arr = [];
arr.push("121");
arr.push("2sd");
arr.push("3fsd");
for (var v in arr) {
alert(v + ":" + arr[v]);
}
//0:121;1:2sd;2:3fsd
var obj = {};
obj.name = "tom";
obj.age = "12";
for (var v in obj) {
alert(v + ":" + obj[v]);
}
//name:tom;age:12
获得对象的属性值可以obj.name或obj["name"]这样获得
若想删除对象的某个属性,可以用delete ;
例如:delete obj.name或者delete obj["name"] 即可删除对象的某个属性
4.2.4while循环
用于在满足特定条件时重复执行一段代码,直到条件不再满足为止
利用 while 语句在控制台输出 1~100 的整数,示例代码如下。
var i = 1;
while (i <= 100) {
console.log(i);
i++;
}
① 执行“var i = 1”,初始化变量 i;
② 判断“i <= 100 ”是否为 true,如果为 true,向下执行③,否则结束循环;
③ 执行循环体,通过“console.log(i)”输出变量 i 的值;
④ 执行“i++”,将 i 的值加 1;
⑤ 判断“i <= 100”是否为 true,和第②步相同。只要满足“i <= 100”这个条件,就会一直循环。当 i 的值加到 101 时,判断结果为 false,循环结束
4.2.5 do…while语句
使用 do…while 语句在控制台输出 1~100 的整数,示例代码如下。
<script>
var i=1
do{
console.log(i)
i++
}while(i<=100)
</script>
① 首先执行“var i = 1”,初始化变量 i;
② 执行循环体,通过“console.log(i)”在控制台输出变量 i 的值;
③ 执行“i++”,将变量 i 的值加 1;
④ 执行表达式“i <= 100”,若表达式的值为 true,继续执行②,只要表达式的值为 true 将一直循环,当 i 的值为 101 时,将结束循环。
4.2.6 跳转语句
应用场景:循环语句一般会根据设置好的循环终止条件停止执行,在循环执行过程中,若需要跳出本次循环或跳出整个循环,就需要用到跳转语句。
常用的跳转语句如下。
- continue
- break
continue 语句用来立即跳出本次循环,也就是跳过了 continue 语句后面的代
码,继续下一次循环。
for (var i = 1; i <= 5; i++) {
if (i == 3) {
continue;
// 跳出本次循环,直接跳到 i++
}
console.log('我吃完了第' + i +'个苹果');
}
break 语句在循环语句中使用时,其作用是立即跳出整个循环,也就是将循环结束。
for (var i = 1; i <= 5; i++) {
if (i == 3) {
break;
// 跳出整个循环
}
console.log('我吃完了第' + i +'个苹果');
}