js基础 选择执行(流程控制)

关键字:if语句,if...else语句,if...else语句嵌套,switch...case语句

程序的流程控制:程序 = 数据 + 算法
任何复杂的程序算法都可以通过“顺序”,“分支”,“循环”三种基本的程序逻辑组合实现。

一、if语句
(1)选择执行某一些语句

语句1:
if(逻辑表达式){
  语句2;
  语句3;
  ......
};
语句10;

执行流程:
①执行语句1
 ②执行逻辑表达式的值
    如果值为true,则执行if中的语句2,3......
    如果值为false,则不执行if中的语句
 ③执行语句10 

(2)在if语句的逻辑表达式中,一些情况默认就是false

undefined, null, 0, NaN, ''

(3)在if语句中,如果大括号之间只有一行语句,可以省略大括号。(推荐不省略)

var score = 59;
if(score >= 60) console.log('及格');
console.log('查询结束');

二、if...else语句

(1)语法

语句1;
if(逻辑表达式){
  语句2;
}else{
  语句3;
};
语句4;

执行流程:
 ①执行语句1;
 ②判断if逻辑表达式的值;
    如果值为true,则执行语句2;
    如果值为false,则执行语句3;
 ③执行语句4. 

三、if...else语句的嵌套( 用于判断多种情况)
(1)语法

语句0;
if (逻辑表达式1) {
  语句1;
}else if (逻辑表达式2){
  语句2;
}else ...... if(逻辑表达式n){
  语句n;
}else{
  语句n+1;      //以上所有的逻辑表达式为false
};

执行流程:
 ①执行语句0;
 ②执行逻辑表达式1;
     若逻辑表达式为true,执行语句1
     若逻辑表达式为false,执行逻辑表达式2
         若逻辑表达式为true,执行语句2
         若逻辑表达式为false,执行逻辑表达式n......
 ③以上所有的逻辑表达式为false,执行语句n+1 

四、.switch...case语句
 是一种特殊的分支语句,可以根据一个表达式的不同值,来选择不同的程序入口来执行。
(1)语法

语句0;
switch(表达式){
  case1:         //如果表达式的值是1,选择进入这个入口执行程序
      语句1;...
      break;     //终止,不会继续往后执行
  case2:         //如果表达式的值是2,选择进入这个入口执行程序
      语句2;...
      break;
  ......
  default:        //以上的值都不匹配,选择这个入口的程序
      语句n;...    //不需要break
};

五、对比if...else嵌套和switch...case语句

       相同点:两者都可以用于分支语句
       不同点:if...else可以判断相等和不等的情况,适用范围广;switch...case语句结构更为清晰,不适用于不等于的情况,执行效率更高(速度快)。
        以后能适用switch...case来实现的效果尽量适用这个。

六、相关练习
(1)手动输入商品的价格及商品的数量,计算商品的总价,如果总价大于等于500,则打8折,最后打印应付的金额。

var price = prompt('请输入商品的价格');
var count = promt('请输入商品的数量');
var sum = price * count;
if(sum >= 500){
  console.log(sum * 0.8);
}else{
  console.log(sum);
};

(2)输入商品的价格和数量,计算商品的总价,判断总价是否大于等于500,如果满足条件,打8折,输入用户支付的金额,如果金额大于商品总价格,打印出应付金额以及找零,如果小于商品总价格,则提示余额不足。

var price = prompt('请输入商品的价格');
var count = prompt('请输入商品的数量');
var sum = price * count;
if(sum >= 500){
	sum *=0.8;
  console.log('应付金额:' + sum);
}else{
  console.log('应付金额:' +sum);
};
var money =prompt('用户付款金额为:');
var odd = money - sum;
if(odd >= 0){
  console.log('应找零:'+odd);
}else{
  console.log('用户付款金额不足');
 };

(3)使用if...else语句的嵌套,输入星座,实现打印星座对应的性格。输入非12星座,打印“请输入12星座之一”

var constel = prompt('请输入你的星座');
if(constel == '白羊座'){
  console.log('你是一位充满希望、和蔼可亲、行动力、活力充沛的人!');
}else if (constel == '金牛座'){
  console.log('你是一位浪漫、决断能力、逻辑性思考、勤勉的人!');
}else if(constel == '双子座'){
  console.log('你是一位多样性、洞察力、开朗、反映机智的人!');
}else if(constel == '巨蟹座'){
  console.log('你是一位第六感、主观、反应佳、想象力、慎重的人!');
}else if(constel == '狮子座'){
  console.log('你是一位自尊心、慈善、权利、思考的人!');
}else if(constel == '处女座'){
  console.log('你是一位有板有眼、服务、鉴赏力、完美主义的人!');
}else if(constel == '天秤座'){
  console.log('你是一位理想主义、公正、追求、社交手腕强的人!');
}else if(constel == '天蝎座'){
  console.log('你是一位神秘、逻辑决断能力、理性、独立的人!');
}else if(constel == '射手座'){
  console.log('你是一位理性、勇敢、细心、发展力、活泼的人!');
}else if(constel == '摩羯座'){
  console.log('你是一位优越、聪明、实际、野心、可靠的人!');
}else if(constel == '水瓶座'){
  console.log('你是一位独创力、宽容、理想、先见之明的人!');
}else if(constel == '双鱼座'){
  console.log('你是一位自觉、唯美的、柏拉图式的爱、幻想的人!');
}else{
  console.log('请输入12星座之一');
};

(4)使用switch...case语句重新编写星座性格。

var constel = prompt('请输入你的星座');
switch(constel){
  case '白羊座':
    console.log('你是一位充满希望、和蔼可亲、行动力、活力充沛的人!');
  break;
  case '金牛座':
    console.log('你是一位浪漫、决断能力、逻辑性思考、勤勉的人!');
  break;
  case '双子座':
    console.log('你是一位浪漫、决断能力、逻辑性思考、勤勉的人!');
  break;
  case '巨蟹座':
    console.log('你是一位第六感、主观、反应佳、想象力、慎重的人!');
  break;
  case '狮子座':
    console.log('你是一位自尊心、慈善、权利、思考的人!');
  break;
  case '处女座':
    console.log('你是一位有板有眼、服务、鉴赏力、完美主义的人!');
  break;
  case '天秤座':
    console.log('你是一位理想主义、公正、追求、社交手腕强的人!');
  break;
  case '天蝎座':
    console.log('你是一位神秘、逻辑决断能力、理性、独立的人!');
  break;
  case '射手座':
    console.log('你是一位理性、勇敢、细心、发展力、活泼的人!');
  break;
  case '摩羯座':
    console.log('你是一位优越、聪明、实际、野心、可靠的人!');
  break;
  case '水瓶座':
    console.log('你是一位独创力、宽容、理想、先见之明的人!');
  break;
  case '双鱼座':
    console.log('你是一位自觉、唯美的、柏拉图式的爱、幻想的人!');
  break;
  default:
	  console.log('请输入12星座之一');
};
上一篇: js基础 运算符和表达式
下一篇: js基础 循环执行(流程控制)
作者邮箱: 203328517@qq.com