zoukankan      html  css  js  c++  java
  • switch遇到0的问题

    你是否经常有switch来代替if else?是否因为使用了switch,提高代码的执行效率而庆幸?好吧,你和我一样,但也许你没有遇到下面的问题。
    这个小程序,会输出什么呢?会是'00'么?

    switch遇到0的纠结

     
    结果必然不会是 00 啊,否则怎么会写这篇文章呢?它的执行结果是 11。具体原因是:
    switch case 接收$a 来进行判断,当接收到的$a为true值时才会进行下面的判断,而$a=0;类似于一个false,所以他会寻找一个false的入口,第一个的判断是正确的,第二条的判断返回的是false,所以会以第二条语句为入口,执行第二条语句。
    switch遇到0的纠结
    返回的结果会是 11,直接执行第一case语句。
    $a=0,switch判断后会认为是false,所以就跳过了第一个case语句,执行后面case语句。第二条后面有break语句,这就是为什么输出会是 11 了。但如果你这样进行判断,就会输出 00了。因为你指明了0时的入口case语句。
    switch遇到0的纠结

    同理下面的段代码的输出你应该就明白了吧。它的输出会是 '22'
    欢迎大家拍砖!
  • 相关阅读:
    Android状态栏和导航栏
    ScrollView小记
    iOS本地推送
    java-集合框架-泛型1
    java-集合框架4---foreach使用--for的增强使用
    java-集合框架3-迭代器的使用
    JAVA-集合框架2
    Number 数据类型转化 NaN 函数isNaN
    数据类型分类
    VScode 插件推荐安装
  • 原文地址:https://www.cnblogs.com/cheng6018/p/6675069.html
Copyright © 2011-2022 走看看