流程控制
在一个程序执行的过程中,名条代码的执行顺序对程序的结果是有 直接影响的。
很多时候我们要通过控制代码的执行顺序来实现我们要完成的功能。
简单理解:流程控制就是来控制我们的代码按照什么结构顺序来执行
流程控制主要有三种结构,分别是顺序结构、分支结构和循环结构,
这三种结构代表三种代码执行的顺序。
1.顺序结构是程序中最简单、最基本的流程控制,
它没有特定的语法结构,程序会按照代码的先后顺序,依次执行,
2.分支结构
由上到下执行代码的过程中,根据不同的条件,
执行不同的路径代码(执行代码多选的过程 ) , 从而得到不同的结果
Javascript中两个分支结构语句
2.2 if语句
语法结构
if(条件表达式){
执行语句
}
执行思路 如果 if里面的条件表达式结果为真true
则执行大括号里面的执行语句
为假则不执行if语句
if else 语句(双语句分支)
条件成立执行if里面代码,否则执行else里面的代码
if (条件表达式) {
如果条件成立执行的代码
}
else {
否则执行的代码
}
if里面的语句1和else里面的语句2最终只能有一个语句执行 2选1
例子:能被4整除且不能整除100的为闰年(如2004年就是闰年,1901年不是闰年)或者能够被400整除的就是闰年
例子2:接收用户输入的姓名 如果输入为 大锤 则提示您中奖了!获得5元 如果是其他 则返回很遗憾没有中奖。
if else if多分支语句 多选一
就是利用多个条件来选择不同的语句执行得到不同的结果
语法
if(条件表达式){
语句
}
else if(条件表达式2){
语句2
}
else if(条件表达式3){
语句3
}
………………
else{
}
注意!!!
多分支语句最后还是 只有一个语句执行
else if 理论上是可以一直加的 无限个(不过初期应该用不了太多)
else if 中间是有空格的
3.三元表达式
三元表达式也能做一一些简单的条件选择。有三元运算符组成的式子成为三元表达式
语法结构:
条件表达式 ? 表达式1: 表达式2;
执行过程
如果为 true 返回第一个表达式
如果为 false 返回第二个
例如
var nim = 10;
var result = num > 5 ? ‘是的’ : ‘不是’;
console.log(result);
此时 返回值为 true 则输出 第一个表达式 ‘是的’
例子or练习
数字补零具体内容如下
用户输入一个 0-59间的数字。如果数字小于十,就在这个数字前补零 否则 不做操作 。之后输出数字
代码如下
// 普通if语句
var n = prompt('请输入一个数字(0~59)')
if (n < 10 ){
alert( '0' + n );
}
//这里先判断是否大于59 如果先判断是否大于10 就无法判断是否大于59
else if (n > 59){
alert('输入有误 请输入数字0~59');
}
else if (n >= 10 ){
alert(n);
}
else{
alert('输入有误 请输入数字0~59');
}
// 三元表达式
var time = prompt('请输入一个数字(0~59)')
//要知道 三元表达式是可以嵌套的 但个人感觉如果选择多的话 还是if语句 一目了然
var result= time < 10 ? alert('0' + time) : time > 59 ? alert('输入有误 请输入数字0~59') : time >= 10 ? alert(time) : alert('输入有误 请输入数字0~59');
执行结果
输入 0~ 9时会自动补零
输入1
输入56
输入59以上
输入英文或特殊符号
4.switch语句
switch 多分支语句,它用于基于不同的条件来执行不同的代码。
当要针对变量设置一系列的特定值的选项时,就可以使用switch.
switch 可以看作开关 转换 case
语法
switch(表达式){
case value1: //case 可以看作选项
执行语句;
break;
case value2:
执行语句2;
break;
//case 可以一直加下去
default:
执行最后的语句;
}
switch 在执行的时候 是把表达式的 值 和 case 后面的值 进行匹配
如果匹配成功 则执行 匹配到的case 下的执行语句
如果一个也没有匹配到 就执行 default 下面的语句
注意!! 匹配时 匹配方式是全等 ===(数据类型 和值都相等)
如果 case 中没有写 break 那么它不会退出
它会继续执行 下一个 case 记得加哦!
switch例子
| 查询水果
var goods =prompt('请输入你要购买的水果')
switch (goods){
case "苹果":
alert('1元/斤');
break;
case "香蕉":
alert('2元/斤');
break;
case "柚子":
alert('3元/斤');
break;
case "火龙果":
alert('4元/斤');
break;
default:
alert('抱歉,暂无')
}
执行效果如下
5.if else if 和 switch 语句使用情况
一般情况下 两者都可用
但在 选项固定情况下 用 switch 比较好
if 语句更灵活 经常在判断范围的时候使用
switch 在执行的时候 会直接跳转到 于值相匹配的选项去执行 效率高
if 语句 是一条一条去判断 判断成功之后再去执行 效率较慢
分支多时 用 switch 更快 分支少时 用if 更快