JavaScript条件判断if 语句

一、if语句的分支

分类:单分支,双分支,多分支,分支嵌套

()中可以是一个值,也可以是一个表达式

// 单分支
if (条件表达式){
   代码段
}
// 双分支
if (条件表达式) {
    代码段1 
}else {
   代码段2
}
// 多分支
if (条件表达式1){
    代码段1
} else if (条件表达式2){
   代码段2
} else if (条件表达式3){
   代码段3
}else{
    代码段4
}

案例:

      //1.考驾照的年龄需要在18岁到70岁,不满足条件提示不符合
        var year = parseInt(prompt('请输入您的年龄'))
        if((year<18 || year>70) && year>0){
            console.log('您的年龄不符合考驾照');
        }
//2.公园票价,浏览器接收:老人,成人,小孩,老人提示免票,成人中性别“男”为100,“女”为80,小孩为同性别成人的半票
        var gender = prompt('请输入您的性别');
        var year = parseInt(prompt('请输入您的年龄'));

        if(gender==='男') {
            if ((year >= 0 && year < 6) || year >= 60) {
                console.log('老人儿童免票');
            } else if (year > 6 && year <= 12) {
                console.log('小孩50元票价');
            } else {
                console.log('成年人 票价100元');
            }
        }else if(gender === '女'){
            if ((year >= 0 && year < 6) || year >= 60) {
                console.log('老人儿童免票');
            } else if (year > 6 && year <= 12) {
                console.log('小孩50元票价');
            } else {
                console.log('成年人 票价80元');
            }
        }else{
            console.log('输入格式错误');
        }

二、switch

()只能是变量或值,不能是表达式

switch (变量){
  case 值1: 
  代码段;
       break;
  case 值2: 
  代码段;
       break;
  ...
  default: 
  代码段;
}

案例:

var d = new Date();
console.log(d); // 获取日期时间对象
var week = d.getDay(); // 获取星期几
switch (week) {
  case 0:
    console.log('星期天');
    break;
  case 1: 
    console.log('星期一');
    break;
  case 2:
    console.log('星期二');
    break;
  case 3:
    console.log('星期三');
    break;
  case 4:
    console.log('星期四');
    break;
  case 5:
    console.log('星期五');
    break;
  case 6:
    console.log('星期六');
    break;
}

break必须添加,否则会继续往下执行

问题:什么时候用if,什么时候用switch

if:条件是一个范围 或者 是具体的值

switch:条件是一个具体的值

能够使用switch实现的判断,都可以使用if来实现 但是,能够使用if语句实现的判断,不一定能使用switch实现

三、switch和if 语句的合成案例

 //3.会员等级:1代表金牌会员,2是银牌会员,3是铜牌会员,4是普通会员,四种会员进店消费xxx元,其中普通会员无折扣,会员享受9折,如消费满1000元,金牌会员享受6折,银牌会员销售7折,铜牌会员享受8折。浏览器接收会员等级和消费金额,输出折后金额
        var user = parseInt(prompt('请输入您的会员等级,1代表金牌会员,2是银牌会员,3是铜牌会员,非会员不需要填入此项'))
        var money = parseFloat(prompt('请输入消费的金额'))
        switch (user) {
            case 1:
                console.log('尊敬的金牌会员');
                break;
            case 2:
                console.log('尊敬的银牌会员');
                break;
            case 3:
                console.log('尊敬的桐牌会员');
                break;
            default:
                console.log('普通会员');
        }
        if (money >= 1000) {
            if (user == 1) {
                console.log('会员折算后' + (money * 0.6));
            } else if (user == 2) {
                console.log('会员折算后' + (money * 0.7));
            } else if (user == 3) {
                console.log('会员折算后' + (money * 0.8));
            }else{
                console.log('您此次消费' + money);
            }
            console.log('您此次消费' + money);
        } else if (money >= 0 && money < 1000) {
            if (user == 1 ,2,3) {
                console.log('您此次消费' + money);
                console.log('会员折算后' + (money * 0.9));
            }else{
                console.log('您此次消费' + money);
            }
        }else{
            console.log('请检查您的格式是否输入错误');
        }

 

posted @ 2023-11-01 10:16  guozhengyuan  阅读(53)  评论(0编辑  收藏  举报