4.2 分支结构switch语句的使用
最后更新于:2022-04-02 00:18:57
还记得我们最开始讲了这么一个故事:
> 王思聪同学家里头特别有钱,所以他的行程方式和正常人的又有些不同。不仅有更多的方式,而且王同学还迷信。
> 他的出行方式呢有6种,如下:
> 1,司机开车
> 2,民航
> 3,自己家的专机
> 4,火车动车
> 5,骑马
> 6,游轮
他的方式有6种,而骰子也真好有6面。所以,我们用if...elseif...的判断方式可以实现,但是效率太低了。
还有其他更好的方式吗?我们可以使用到一种方式就是:switch...case语法。
switch...case的语法结构如下:
~~~
~~~
switch后放需要判断的变量,而case后是放结果。switch后变值为多少,case的值写的与switch变量执相同段的代码。
> 上面的break是可选的
> 上面的default也是可选的
> 不要在case 后面写成分号,后面是冒号:
> 不要在case后面写判断区间,如($foo > 20 或者 $foo == 30)
> switch里面在变量最好是 整型,字符串,因为布尔判断更适合if...else..
我们用流程图来表示的话结果就如下图所示:
![2015-08-08/55c5a97fea497](http://box.kancloud.cn/2015-08-08_55c5a97fea497.png)
上节课中我们用到了rand函数,那我们现在来用rand实现王思总同学的问题选择:
~~~
~~~
上面的代码我们只需要简单修改,就可以实现我们在微信上面玩的一个小游戏简单的家务骰子和剪刀石头布。你想想?
> 你再做做实验:
> 我们可以把 case 1 代码段中的break去掉,你再试试,什么效果?
我们再来写一个简单的星期判断,写法也可以变的怪一些哟:
~~~
';
}
~~~
> 自己做实验试试:
> 上面的例子发现,不匹配的时候就执行了default了吧?
当然你也可以这样,不过这种写太太累了,没有if...else更加简单。我们不用swith...case来做true和false判断
~~~
';