三目运算符“?:”省略中间操作数
2017-11-22 14:50
1066 查看
三目运算符“?:”省略中间操作数
在使用三目运算符的时候,我们经常见到的是:x ? x : y
就是if else的简写
如果x为真,就返回x,如果x为假,就返回y。这是最简单最基本的用法。
但是有时候会看到这种用法
x ?: y
?与:之间没有任何操作数,这是什么用法呢?
在通过几个实例的实验后,猜测?与:之间省略了x
也就是说x ? : y 就是 x ? x : y
这样就可以讲的通了。
那么形如 a > b ?: b 中间省略了什么呢,是a吗
验证之后发现并不是a
其实省略了 a > b
也就是说 a > b ?: b 等价于 a > b ? a > b : b
那么可以这样下结论:“?:” 中间省略的东东是与 “?”之前的数或者表达式完全一致。
值得注意的是:在某种情况下,还是会有出入的
譬如 y = ++x ? ++x : 3 与 y = ++x ?: 3
输出的y的结果是不一样的,这是为什么呢?
当x的初始值为0时,第一种写法的输出y的结果为2 ,而第二种写法的输出y的结果为1
说明第一种写法输出的是执行了两次++操作的结果,而第二种写法只执行了一次++操作
所以当有++或--运算的时候,要根据需要判断要不要省略,不能贸然省去,从而引起不必要的错误
其实这种省略方式还是挺好的,特别是代码长度比较长的时候,可以在满足要求的前提下简化代码
相关文章推荐
- 三目运算符“?:”省略中间操作数
- 三目运算符“?:”省略中间操作数的分析
- 三目运算符“?:”省略中间操作数
- 【转】三目运算符“?:”省略中间操作数的分析
- 三目运算符“?:”省略中间操作数的分析
- 三目运算符“?:”省略中间操作的特殊用法及举例
- Java编程:用三目运算符和交换两种方法求三个数中的中间数字。
- 选择路径 省略中间 ...
- Java之戳中痛点 - (3)三目运算符的两个操作数类型尽量一致 Java之戳中痛点 - (4)i++ 和 ++i 探究原理 Java之戳中痛点 - (1)易变业务使用脚本语言编写 Java之戳中痛点 - (2)取余用偶判断,不要用奇判断 (5)switch语句break不能忘以及default不同位置的用法 Java之戳中痛点 - (7)善用Java整型缓存池
- php字符串过长中间省略
- java 读取mongo数据库数据并直接下载,省略中间文件
- Java之戳中痛点 - (3)三目运算符的两个操作数类型尽量一致
- C语言求三个数的中间值(三目运算符)
- php 三元操作符的简化使用 (中间省略一项)
- 链表面试题逆序打印,删除无头非尾节点,非头位置插入,约瑟夫环,查找中间和倒数第k个节点
- (iOS开发)导航栏navigationBar中间添加按钮
- Android 怎么去掉两个并列Button中间的距离
- 自定义UITabBar--实现类似新浪微博中间的发送按钮
- HDU5929 Basic Data Structure,ccpc,模拟双端队列(两倍大的数组从中间开始向两旁拓展)
- CSS省略号text-overflow超出溢出显示省略号