04-JS条件分支语句
一、条件分支语句
条件分支语句,也叫做条件判断语句,就是根据某种条件执行某些语句,不执行某些语句。
JS中条件分支的语句有三种
(一)if 条件分支语句
条件分支的主力语法,这个主力语法能够书写所有的条件分支语句。
1.if 判断语句
如果...
var score = 21;
if(score >= 60){
console.log("你及格了");
}
2.if ... else ...分支语句
如果...否则...让程序出现分支,也就是现在有两条路可以走。
var score = 33;
if(score >= 60){
console.log("你及格了");
}else{
console.log("你挂科了");
}
3.if ... else if ... else if ... else
多分支 if 语句
如果。。。否则如果。。。否则如果。。。否则。。。
用户会选择一个分支执行,选择这个分支了,就暗含了上一个分支没有满足:
var score = 75;
if(score >= 80){
console.log("你很优秀");//不满足条件,所以不执行,走楼梯下楼
}else if(score >= 70){
console.log("良好,很不错");//走到这个楼层,一定暗含小于80,这一楼层满足,跳楼了
}else if(score >= 60){
console.log("你及格了,继续加油");//不执行
}else{
console.log("你不及格,等着挨揍");//不执行
}
楼层中else只能有一个,else if可以有多个
语法:
if (条件1){
条件1成立时,执行的程序
}else if (条件2){
条件1不成立,并且条件2成立时,执行的程序
}
......
else{
以上所有条件都不成立时,执行的程序
}
4.if 语句可以嵌套
如果里面套一层如果
//if嵌套语句
var chinese = 81;
var math = 70;
if(chinese >=80){
if(math >= 60){
alert("你没有挂科");
}
}
(二)switch ... case 条件分支语句
switch case语句,switch case 能实现的,if else语句也一样能实现
switch(检测值){
case 值1:
值1与检测值相同时做的事情
break;
case 值2:
值2与检测值相同时做的事情
break;
case 值3:
值3与检测值相同时做的事情
break;
defalult:
默认要做的break;
}
那switch语句用于判断的是相等还是全等呢?
switch进行相同判断,底层是===的比较,连类型一起比较。
(三)三元运算符
?: 是一组运算符,这是JS中唯一一个需要三个元素参加的运算符。
条件?val1 : val2
表达式的值,要看条件是true还是false。如果条件是true,那么表达式的值就是val1.如果条件是false,表达式的值就是val2。
简单的看一个例子
console.log(true ? 8 : 6); //8
console.log(false ? 8 : 6); //6
三目运算符是if,else语句的一种简化形式
if (条件){
条件成立,执行程序1
}else{
条件不成立,执行程序2
}
上面的if,else语句可以简写成以下的三目运算
条件?执行程序1:执行程序2
总结:
条件分支的语句一共有三种:
if... else if ...
switch case (某一方面很擅长,体现在代码的清晰度上)
三元运算符(赋值的时候,根据条件有两个可能的值,马上想到三元运算符)
&& || 短路写法
但是 && || 短路写法也有一种选择的感觉,这样选就算4种。
二、条件循环语句
JS中流程控制的语句,就两个:条件分支、循环语句。靠这两种语句,就能完成所有的程序。
循环语句是一系列反复执行直到符合特定条件的命名。
循环语句能够解决大量类似语句书写。
(一)for循环语句
作用:
for循环的作用是重复执行一段程序,能够解决大量的类似语句书写。
for(var i = 1; i <= 99; i++){
console.log("喜欢你很多很多次");
}
书写需要注意:
最容易犯的语法错误:括号中最后一个语句没有分号
1.for循环的本质,必须搞清楚
for(1,2,4){
3
}
5
for(var i = 1; i <= 99; i++){
console.log("第"+ i + "次喜欢你");
}
console.log("我是循环结束后的语句");
2.for 循环里的break和continue语句
break语句
结束整个循环
作用:break下面的程序不执行,步长累加不执行,整个for循环结束。
for(var i = 1; i <= 100; i++){
console.log(i);
if(i == 5){
break;//找到一个,就立即终止循环
}
}
//结果为 1,2,3,4,5
continue语句
结束本轮循环
作用:continue下面的程序不执行,执行步长累加,开始下一轮循环
for(var i = 1;i <= 10; i++){
if(i == 5){
continue;
//当i为5时,立即终止执行后面的console语句,直接i为6了
}
consolelog(i);
}
//结果为 1,2,3,4,6,7,8,9,10
break和continue的目的,就是优化算法。
(二)while语句
while循环,是for循环的一种简化形式
语法:
设置循环变量
while(循环执行的条件){
语句块
}
var n = 1;
while(n <= 10){
console.log(n);
n++;
}
如果判断条件为假,那么代码块中的语句将一次都不会执行
其实很像for循环的变体
var n = 1;
for(;n <= 10;){
console.log(n);
n++;
}
(三)do ... while语句
和while语句相似,都是for的变体,do就是做,while就是当
语法:
do{
1语句
}while(2条件表达式)
程序一开始就会执行一次1,然后验证2是否为真,如果是真,继续执行1。。。。直到假跳出循环
不过do...while是一个后置验证,先执行后验证,怎么着都会执行一次:
例子:
do{
console.log("你是谁?");
}while(false)
这里至少会打印一次
总结一下,JS中的三个循环语句:
for( ; ; ){ //注意括号内是三条语句,要用两个分号隔开
}
while(){
}
do{
}while()