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'
    欢迎大家拍砖!
  • 相关阅读:
    mybatis_7分页查询
    mybatis_6日志工厂
    mybatis_5解决属性名和字段名不一致的问题(resultMap)
    mybatis_4配置解析
    mybatis_3CRUD操作
    ARM C函数调用堆栈入栈顺序
    syscall SYSCALL_DEFINE*()实现
    ko kallsyms
    elf文件结构解析
    ko module加载flow
  • 原文地址:https://www.cnblogs.com/cheng6018/p/6675069.html
Copyright © 2011-2022 走看看