您现在的位置是:首页 > 学无止境 > 其他网站首页其他 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”。

文章评论

    • 评论
    人参与,条评论

技术在线

服务时间

周一至周日 12:00-22:00

关闭下雪
关闭背景特效