流程控制-分支结构
2019-01-24 本文已影响0人
让思念入土
顺序结构: 由上而下的执行代码
分支结构:在由上而下的执行代码过程中,根据不同的条件执行不同的代码
常见分支结构:
if语法
if(条件表达式){
条件成立执行的代码
}
如:如果年龄大于等于 18 岁,允许进网吧。
var usrAge = prompt('请输入您的年龄:');
if(usrAge >= 18){
alert('您的年龄合法,欢迎来天际网吧享受学习的乐趣!');
}
if-else语法
//if 如果 else 否则
// 条件成立执行代码,否则执行另外的代码
if(条件表达式){
条件成立执行的代码
}else{
条件不成立执行的代码
}
案例:判断闰年:
// 能整除4且不能整除100的为闰年.(如2004年就是闰年,1901年不是闰年)
// 能够被 400 整除的 就是闰年
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
alert("这个年份是闰年");
} else { // 剩下的是平年
alert("这个年份是平年");
}
if-else-if语句
//适合于检查多重条件。
if (条件1表达式) {
// [如果] 条件1 成立执行的代码
} else if (条件2表达式) {
// [否则] [如果] 条件2 成立执行的代码
// 注释:条件1 不成立,但是条件2 成立
} else if (条件3表达式) {
// [否则] [如果] 条件3 成立执行的代码
// 注释:条件1 2 不成立,但是条件3 成立
} else {
// 上述条件都不成立执行的代码
}
案例:
var score=prompt('请输入你的分数');
if(90<=score){
alert('A');
}else if(80<=score&&score<90){
alert('B');
}else if(70<=score&&score<80){
alert('C');
}else if(60<=score&&score<70){
alert('D');
}else{
alert('E');
}
三元表达式:
表达式1?表达式2:表达式3
如果表达式1为true ,则整个表达式的结果就是表达式2的值,如果表达式false,则整个表达式的结果就是表达式3的值.
就类似于 if else 的简写
var a = 10;
var result = 0;
if(a > 7){
result = 21;
}else{
result = 12
}
alert(result); // 21
等价于
var a = 10;
var result = (a > 7) ? 21 : 12;
switch case 结构:
当要针对变量多种不同值执行不同的代码时,就可以使用 switch。
使用结果表达式 的值 和 各个 case 中的值 进行相等比较
switch( 变量 ){
case value1:
//表达式结果 等于 value1 时 要执行的代码
break;
case value2:
//表达式结果 等于 value2 时 要执行的代码
break;
default:
//表达式结果 不等于任何一个 value 时 要执行的代码
}
执行顺序:
-
先 从变量中 获取一个 值,随后 表达式的值 会与结构中的 case 的值 做比较。
-
如果存在匹配 全等(===) 即( 变量值 === value 值) ,则与该 case 关联的 代码块 会被执行,
并在遇到 break 时停止,整个 switch 代码执行结束。 -
如果所有的 case 的值 都和 表达式值 不匹配,则 执行 default里的代码。
-
case 后面的值 通常都是一个常量。
案例:
var strResult = '';
var usrNum = prompt('请输入一个 1- 7 之间的数字:'); // 接收用户输入的一个数字字符串
usrNum = parseInt(usrNum);// 将数字字符串 转成 整数数值
switch(usrNum){
case 1:
strResult = '星期一';
break;
case 2:
strResult = '星期二';
break;
default:
strResult = '星期天';
}
alert('您输入的数字对应的是' + strResult);
switch与if对比:
-
switch...case通常处理case为比较确定值(常量)的情况,而if…else…更加灵活范围判断
-
switch 进行一次条件判断后直接执行到程序的条件语句。而if…else 有几种条件,就得判断多少次。
-
当只有分支比较少的时候,if效率比 switch高
-
分支比较多,是switch的效率比较高,而且结构更清晰