目录
流程控制
在一个程序中,各代码的执行顺序对程序的结果是有直接影响的。很多时候我们要通过控制代码的执行顺序来实现要完成的功能。
流程控制有三种结构,分别是顺序结构、分支结构和循环结构,这三种结构代表三种代码执行的顺序。
顺序流程控制
概述:它没有特定的语法,程序会按照代码的先后顺序,依次执行。
分支流程控制if语句
概述:由上到下执行代码的过程中,根据不同的条件、执行不同的路径代码(执行代码多选一的过程),从而得到不同的结果。
JS语言提供了两种分支结构语句:
1、if语句
2、switch语句
if语句
语法结构:
// 条件成立执行代码,否则什么都不做
if(条件表达式){
// 条件成立执行的语句
}
执行流程:
案例:
// 弹出输入框,要求用户输入年龄,如果年龄大于等于18岁,允许进入网吧。
var age = prompt('输入年龄');
if (age >= 18) {
alert('可以进入网吧')
}
if else语句(双分支语句)
语法结构:
// 条件成立 执行if里面的代码,否则执行else里面的代码
if(条件表达式){
// [如果]条件成立执行的代码
}else{
// [否则]执行的代码
}
执行流程:
案例:
// 判断闰年,接收用户输入的年份,如果是闰年就弹出闰年,否则弹出是平年。
var year = prompt('输入年份');
// 算法:能被4整除且不能整除100的为闰年(如2004年就是闰年,1901年不是闰年)或者能够被 400 整 除的就是闰年
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
alert('闰年');
} else {
alert('平年');
}
if else if语句(多分支语句)
语法结构:
// 适合于检查多重条件
if (条件表达式) {
语句1:
} else if (条件表达式2) {
语句2:
} else if (条件表达式3) {
语句3:
...
} else {
// 上述条件都不成立执行的代码
}
执行流程:
案例:
// 要求:接收用户输入的分数,根据分数输出对应的等级字母 A、B、C、D、E。
// 其中:
// 1. 90分(含)以上 ,输出:A
// 2. 80分(含)~90 分(不含),输出:B
// 3. 70分(含)~80 分(不含),输出:C
// 4. 60分(含)~70 分(不含),输出:D
// 5. 60分(不含) 以下,输出: E
var score = prompt('输入的分数')
if (score >= 90) {
alert('A');
} else if (score >= 80 && score < 90) {
alert('B');
} else if (score >= 70 && score < 80) {
alert('C');
} else if (score >= 60 && score < 70) {
alert('D');
} else {
alert('E');
}
三元表达式
概述:三元表达式也可以做一些简单的条件选择,有三元运算符组成的式子称为三元表达式。
语法结构:
表达式1 ? 表达式2 : 表达式3;
执行思路:
当表达式1条件成立时(true),返回表达式2,否则返回表达式3。(类似于if else双分支语句)
案例:
// 判断sum是否等于80
var sum = 90;
sum > 80 ? '是' : '否'; // true->是
分支流程控制switch语句
概述:switch语句也是多分支语句,用于基于不同的条件执行不同的代码。当要针对变量设置一系列的特定值的选项时,就可以使用switch语句。
语法结构:
switch(表达式){
case value1:
// 表达式等于value1时要执行的代码
break; // 当条件成立时,中断执行下面代码
case value2:
// 表达式等于value2时要执行的代码
break; // 当条件成立时,中断执行下面代码
default:
// 表达式不等于任何一个value时要执行的代码
}
注意:1.表达式与value是判断是否全等(===)。
2.执行case语句时,如果没有break,则执行下一个case里面的语句。
// 查询水果 要求输入水果,有这水果则弹出警示框
var fruits = prompt('输入要查询的水果')
switch (fruits) {
case '哈密瓜':
alert('这有哈密瓜');
break;
case '西瓜':
alert('这有西瓜');
break;
case '香蕉':
alert('这有香蕉');
break;
case '樱桃':
alert('这有樱桃');
break;
default:
alert('不好意思,店里没有这水果')
}