JS基础语法(switch语句)

switch语句:多分支语句
1.switch语句是用来选择要执行的多个代码块之一(类似if...else if... else if... (n个)...else),见6举例

2.语法:
   
switch(表达式n)
		{
			case 值1:语句体1;break;
			case 值2:语句体2;break;
			case 值3:语句体3;break;
			...
			default:语句体n;
		}

3.说明:
  • switch、case必不可少
  • break、default为可选项
4.表达式n:
  • 通常为一个变量(建议为number或者string类型)
  • 表达式类型应该与case后面的值的类型相同,因为在匹配比较时,switch使用的是“===”(全等于)判断类型,例子如下:
  • <script>
    		// 比较a、b都输入数字1后的结果
    		var a=prompt("key the number of 1 or 2");//a为string型
    		var b=prompt("key the number of 1 or 2")*1;//“*1”后输入的数b转变为number类型
    			switch(a)
    			{
    				case 1:x="长城";break;
    				//case后的值是个数值number类型,而a为string型
    				//达不到全等于“===”条件,所以不匹配长城,而选择了跳转到default后面的语句
    				case 2:x="故宫";break;
    				default:x="颐和园";
    			}
    			console.debug("x:"+x)//控制台结果:x:颐和园
    			switch(b)
    			{
    				case 1:y="长城";break;
    				// 因b已转化为number类型,与case 1 匹配,执行了“长城”这条语句体
    				case 2:y="故宫";break;
    				default:y="颐和园";
    			}
    			console.debug("y:"+y)//控制台结果:y:长城
    	</script>
    
    控制台输出结果:

    5.执行过程:
    • 计算表达式n结果,将表达式的值依次与case后面的值做比较,如果匹配,则执行该case后面的语句体;如果该语句体后面有break则执行完该语句体后跳出switch,如无break则无需判断直接进入下一个case分支或default语句,见下面举例
    • 如果所有case后面的值都与表达式n值不匹配,则执行default后面的语句体,如果没有default,则该switch语句什么都没做就结束
    6.举例
    <script type="text/javascript">
    		//输入一个月份,输出该月份有多少天,不考虑闰年
    		// 使用if
    		var month=prompt("请输入一个月份")*1;
    		if (month==1 || month==3 || month==5 || month==7
    			|| month==8 || month==10 || month==12){
    			console.debug("if 语句:"+month+"月有31天。");
    		}
    		else if (month==4 || month==6 || month==9 || month==11){
    			console.debug("if 语句:"+month+"月有30天。");
    		}
    		else if (month==2){
    			console.debug("if 语句:"+month+"月有28天。");
    		}
    		else{
    			console.debug("你输入的月份不正确!");
    		}
    
    		// 使用switch
    		switch(month){
    			case 1:
    			case 3:
    			case 5:
    			case 7:
    			case 8:
    			case 10:
    			case 12:
    				console.debug("switch 语句:"+month+"月有31天。");
    				break;
    			// 根据具体题目,利用break,简化书写
    			// 当输入的月份与1符合时,因没有break,仍会跳到后面的case再与后面的值比较,直到12月份输出12月份后面的结果,再通过break跳出switch
    			// 当所有出现31天的情况都走过仍没有时进入下面case 2的比较
    			case 2:
    				console.debug("switch 语句:"+month+"月有28天。");
    				break;
    			case 4:
    			case 6:
    			case 9:
    			case 11:
    				console.debug("switch 语句:"+month+"月有30天。");
    				break;
    			default:
    				console.debug("你输入的月份不正确!");
    		}
    	</script>
    
    输入4之后,控制输出结果:

    猜你喜欢

    转载自15951837734.iteye.com/blog/2297341