您现在的位置是:首页 > 学无止境 > 其他网站首页其他 php的switch-case语句中为0判断出错的问题
php的switch-case语句中为0判断出错的问题
- 其他
- 2019-03-31
简介有的时候,我们用switch-case语句来判断的时候,当switch大于0时程序没有任何问题,当switch等于0时最终的结果不是预期的,该怎么解决这个出错的问题呢?字数
416
今天和前几天在PHP学习群里面就有2个人来问这个问题,自己也找了下我以前学习C语言以及数据库里面关于switch-case语句的作业,发现有一个案例是用来判断的。做个分析给大家,如果有问题可以通过右边的联系方式来告诉我哦。
源码如下:
如果在浏览器运行上面的代码,发现传递参数为0的时候,判断为优秀。
问题的原因就是switch-case在执行的流程是 switch 位置的条件和 case 位置的条件做比较,再继续执行程序。
当$score大于0时
switch位置的条件为"真"(true),然后用true 和 case 位置的条件作比较。这时程序是没有问题的,因为只要case位置的条件为true语句就跳出了。
当$price等于0时
这个时候switch位置的条件为"假"(false),语句继续执行的时候,只有当 case 位置的条件也为false 程序才会执行 case 冒号位置后的程序。而事实是 case 位置的所有条件都为"假"(false),所以最终的结果是执行第一个case冒号后的语句,即输出结果为:优秀。
所以我们只需要把switch里面的值为ture时,结果就是预想的结果了。
转载:
感谢您对莫愁个人博客网站平台的认可,非常欢迎各位朋友分享到个人站长或者朋友圈,但转载请说明文章出处“来源莫愁个人博客 https://www.mochoublog.com/study/139.html”。
- 其他
- 2019-03-31
今天和前几天在PHP学习群里面就有2个人来问这个问题,自己也找了下我以前学习C语言以及数据库里面关于switch-case语句的作业,发现有一个案例是用来判断的。做个分析给大家,如果有问题可以通过右边的联系方式来告诉我哦。
源码如下:
如果在浏览器运行上面的代码,发现传递参数为0的时候,判断为优秀。
问题的原因就是switch-case在执行的流程是 switch 位置的条件和 case 位置的条件做比较,再继续执行程序。
当$score大于0时
switch位置的条件为"真"(true),然后用true 和 case 位置的条件作比较。这时程序是没有问题的,因为只要case位置的条件为true语句就跳出了。
当$price等于0时
这个时候switch位置的条件为"假"(false),语句继续执行的时候,只有当 case 位置的条件也为false 程序才会执行 case 冒号位置后的程序。而事实是 case 位置的所有条件都为"假"(false),所以最终的结果是执行第一个case冒号后的语句,即输出结果为:优秀。
所以我们只需要把switch里面的值为ture时,结果就是预想的结果了。
转载: 感谢您对莫愁个人博客网站平台的认可,非常欢迎各位朋友分享到个人站长或者朋友圈,但转载请说明文章出处“来源莫愁个人博客 https://www.mochoublog.com/study/139.html”。