流程控制语句
js中的程序是自上而下的一行一行的执行的
通过流程控制语句,可以控制程序执行流程,使程序可以根据一定的条件来选择执行
语句的分类:
1.条件判断语句
使用条件判断语句可以在执行某个语句之前进行判断,如果条件成立才会执行语句,条件不成立则该语句不执行
if语句
语法1:
if(条件表达式)
语句
if语句在执行时,会先对条件表达式进行求值判断,如果条件表达式的值为true,则会执行if后的语句,如果条件表达式的值为false,则不会执行if后的语句。
if语句只能控制它后面的一条语句,如果想控制多个语句,就用{}括起来。尽管只有一条语句,也尽量用{}括起来
语法2:
if(条件表达式) {
//如果条件表达式的值为true,就执行这里面的代码
语句1
} else {
//条件表达式的值为false时,就执行这里面的代码
语句2
}
语法3:
if(条件表达式1) {
//如果条件表达式1的值为true时,执行这里面的代码
} else if(条件表达式2) {
//如果条件表达式1的值不为true,而条件表达式2的值为true,就执行这里面的代码
}else {
//如果条件表达式1和条件表达式2的值都为false,则执行这里面的代码
}
//如果条件结果的值一直为false,就一直往下判断,直至else
//该语句中,只会执行一个代码块,一旦执行了一个代码块,就会结束此次判断
prompt():这个函数可以弹出一个提示框,该函数需要一个字符串作为参数,该字符串是提示框的提示内容。该提示框中会带有一个文本框。用户可以在文本框中输入一段内容,用户输入的内容将会作为函数的返回值返回,可以定义一个变量来接受该内容。
案例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
var num = prompt("请输入小明的成绩");
// 判断num是否大于100或者小于0或者不是数字,结果为true时,就不继续进行奖励判断
if (num > 100 || num < 0 || isNaN(num)) {
alert("此成绩不合法")
} else {
if (num == 100) {
alert('奖励一辆车');
} else if (num <= 99 && 80 <= num) {
alert("奖励一台手机");
} else if (num >= 60 && num <= 79) {
alert("奖励一本书");
} else {
alert("你要继续加油");
}
}
alert("好好学习,天天向上")
</script>
</head>
<body>
</body>
</html>
2.条件分支语句
语法:
switch(条件表达式) {
case 表达式:
语句...
break;
case 表达式:
语句...
break;
default:
语句...
break;
}
执行流程:
在执行代码前,switch后的条件表达式的值会依次的和case后面的表达式进行全等比较;如果比较结果为true,则执行当前case后面的语句体;如果比较结果为false,则继续进行向下比较。
break:用来退出(结束)switch语句。在case后面添加break语句,可以确保只会执行当前case后的语句体,而不会执行其他case后的语句体
default:所有case的比较结果都为false,默认执行的代码
switch和if语句的功能实际上有重复的,使用switch可以实习if的功能。同样使用if也可以实现switch的功能。在开发过程中,看个人习惯选择
3.循环语句
创建循环的步骤:
//1.创建并初始化一个变量
var i=0;
//2.在循环中设置一个条件表达式
//反复循环循环体里面的代码
while(i<10){
//循环输出i
console.log(i);
//3.定义一个更新变量的表达式,每次循环结束,更新变量的值
i++;
}
通过循环语句可以反复的执行一段代码多次
//先判断条件,如果条件结果为true,才会执行循环体内的语句
while(true){
alert(n++);
if(n==10){
//退出循环(终止循环)
break;
};
}
//死循环
//将条件表达式写死为true的循环,叫做死循环
//死循环不会停止,除非浏览器关闭,死循环在开发中慎用
var i = 1;
while (true) {
alert(i++);
//终止死循环,判断是否为true
if (i > 10) {
break;
}
}
while语句在执行时,先对条件表达式进行求值判断,如果结果为true,则执行循环体,循环体执行完毕以后,继续对表达式进行判断,如果结果为true,则继续执行循环体,以此类推。如果表达式结果为false,则终止循环
do{…}while在执行时,先执行循环体一次,然后再判断条件表达式;如果条件表达式的值为true,继续执行循环体,若是为false,则终止循环。
while(){…}和do{…}while()两个语句的功能类似,不同的是,while(){}是先判断后执行,do()while{}是先执行一次再判断。所以while(){}是最少执行0次,do()while{}是最少执行一次
<script>
var num = 1000;
var i = 1;
while (num < 5000) {
num *= 1.05;
i++;
}
console.log(i);
</script>
for循环
语法:
for(初始化表达式;条件表达式;更新表达式){循环体}
执行流程:
1.执行初始化表达式,初始化变量(初始化表达式只会执行一次);
2.执行条件表达式,判断是否执行循环体;如果为true就执行循环体,如果为false,终止循环。
3.执行更新表达式,更新表达式执行完毕,继续2步骤
for循环的死循环
//for后面的括号中的三个表达式可以省略不写,也可以写在外面
//如果在括号中不写任何的表达式,只写两个;;,此时就形成了一个死循环,会一直执行下去,慎用
for(;;){
console.log("hello");
}
案例1:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>7的倍数和个数</title>
<script>
var sum = 0;
var count = 0;
for (var i = 1; i <= 100; i++) {
if (i % 7 == 0) {
sum = sum + i;
count++;
console.log(i);
}
}
console.log(sum);
console.log(count);
</script>
</head>
<body>
</body>
</html>