switch中case后可以是表达式吗_JavaScript-switch 语句

20395626ef4ad8f24f203d75bd2ace91.png

好好学习,天天向上

switch 语句

  • 开关语句允许一个程序求一个表达式的值,并且尝试去匹配表达式的值到一个 case 标签,如果匹配成功,这个程序执行相关的语句

语法:

switch (表达式) {
	case 值1:
		结构体1;
		break;
	case 值2:
		结构体2;
		break;
	…
	default: 
		结构体n;
		break;
     }

结构解析:

  • switch:关键字表示开始进入一个开关语句
  • 表达式:会求出一个具体的值,将这个值去与 {} 内部的 case 后面的值进行对比、匹配,如果值相等表示匹配成功。匹配相等时,方式是进行全等于匹配,不止值要相等,数据类型也要相等
  • case:示例的意思,作为关键字后面必须跟一个空格,书写匹配的值
  • case 后面的结构体:每个 case 匹配成功之后要执行的语句
  • break:用于打断结构体,直接跳出程序,模拟跳楼现象
  • default:相当于 if 语句中的 else,否则的情况,如果前面的 case 都不匹配,执行 default 后面的语句

示例1:

<script>
    var xingZuo = prompt("请输入你的星座", "天蝎座");
    // 进行匹配
    switch (xingZuo){
        case "天蝎座":
            alert("运势nice"); 
            break;
        case "巨蝎座":
            alert("运势nice2"); 
            break;
        case "处女座":
            alert("运势nice3"); 
            break;
        case "天秤座":
            alert("运势nice4"); 
            break;
        default:
            alert("还么有收录");
            break;
    }
</script>

示例图:

c4b7bdd109cd7493b761b34daaf5b4be.gif

示例2:

<script>
    var month = parseInt(prompt("请输入需要查询的月份", "1"));
    switch (month){
        // case 1 || 3 || 5 || 7: 这是错误的,它会先算出数据
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
            alert("这个月有31天");
            break;
        case 2:
            alert("这个月有28/29天");
            break;
        default:
            alert("这个月有30天");
            break;
    }
</script>

示例图:

e142e6defc460e92a3c538abf1e2afbe.gif

运行机制:

  • switch 语句首先会将小括号内的表达式计算出一个结果,用结果去匹配结构体内部的 case;
  • 从上往下进行匹配,如果匹配成功,会立即执行这个 case 后面的语句,直到遇到一个 break 跳出整个 switch 语句;
  • 如果前面的 case 没有匹配成功,会跳过 case 之间的语句,去匹配下一个 case,直到匹配成功,如果都不成功就执行 default 后面的语句

注意事项

  • default 可以不写,相当于 if 语句没有 else
  • break 关键字:根据结构需要有时必须在每个 case 后面都要写,为了模拟跳楼现象,如果不写 break,对应的 case 后面的语句执行之后,不会跳出结构体,会继续想下执行其他 case 的后面的语句,直到遇到一个 break
  • 可以利用 break 不写的情况制作一些特殊的案例

条件分支语句总结

  • 总结:实际工作中使用三种语句的情景
  • if 语句:最常用的语句,所有的判断情况都能够书写
  • 三元表达式:多用于给变量赋值根据条件二选一的情况
  • switch 语句:多用于给一个表达式去匹配多种固定值可能性的情况
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值