流程控制语句

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>