今日目标
流程控制 循环语句
1.流程控制
程序=数据+算法
任何复杂的程序的算法都可以分为“‘顺序执行’”,“选择执行”,“循环执行”
选择执行:程序可以选择执行某一段代码,也可以选择不执行这段代码
(1)if语句
if(逻辑表达式){ 语句1; 语句2; } 语句3 |
执行流程:如果逻辑表达式结果是true,执行语句1,语句2;
如果逻辑表达式结果为false,跳过语句1、2,执行语句3
练习:通过弹出提示框,输入商品总额,如果总额大于等于500,则打八折,最终打印商品的应付金额
var num1 = prompt('please input a price');
if(num1>=500){
num1=num1*0.8;
}
console.log('price:'+num1);
注意:IF后边的大括号中的语句只有一条,可以省略大括号,否则不能省略
if(true){ } 逻辑表达式可以直接写true或者false
在逻辑表达式中 undefined,null,0,' ',NaN都被认为是false;
2.if...else语句
语句1; if(逻辑表达式){ 语句2; }else{ 语句3; } 语句4; |
执行流程
①执行语句1;
②判断逻辑表达式的值
如果结果是true,执行语句2
如果结果是false,执行语句3
③执行语句4
例://弹出提示框,输入商品总额
var total=prompt('please input total');
//如果总额满500,打八折
if(total>=500){
total*=0.8;
}
//付款:准备一个账户,初始值
var money = 400;
//判断账户的值是否大于等于商品的总额
//如果满足,打印付款成功
if(money>=total){
console.log('pay success');
}else{
//否则,打印余额不足
console.log('pay error');
}
3.if...else语句嵌套
语句0; if(逻辑表达式1){ 语句1; }else if(逻辑表达式2){ 语句2; }else...if(逻辑表达式n){ 语句n; }else{ 语句n+1;//在以上n种情况都不满足的情况下才执行 } 执行流程: ①执行语句0 ②执行逻辑表达式1,如果结果是true,执行语句1;否则执行逻辑表达式2,如果结果是true,执行语句2 ;否则继续执行其他的逻辑表达式 ③如果以上所有的逻辑表达式结果都是false,则执行语句n+1 |
4.多项分支语句 switch...case语句
语句0; switch(表达式){ case 1: //如果表达式的值是1,选择进入这个入口执行程序 语句1; ...... break; //终止,不会再向下执行程序 ...... case n: 语句n; ... break; default: //以上所有的值都不匹配,选择这个入口执行程序 语句n+1; ... } |
注意:在switch语句中,比较所执行的是全等于(===)
练习:使用switch...case语句完成星座判断
if...else和switch...case的区别
if...else可以判断所有情况,例如大于,小于,等于,不等于...
switch...case只能用于全等于(===)的比较,局限性较大,但是执行效率更快
5.循环语句 while
循环就是一遍又一遍执行相同或者相似的代码
例如:循环产生商品列表,打印100次“hello”
while(布尔型的表达式){ //要循环的代码 } |
练习:
完成使用switch...case语句,判断一个人的成绩 60-69 70-79 80-89 90-99 100
让分数除以10,然后取整(parseInt),所得结果6,7,8,9,10
扩展学习:学习for循环,while循环,循环嵌套