像这样分手:

true ? (++i > 2 ? true

: false)

: false;

所以这里测试条件总是设置为true.因此,执行的三元分支是i> 1. 2? true:false part.

这只是检查增量后是否大于2.如果是,则返回true.否则它将返回false.

整个表达实际上是不必要的复杂.它可以简单地写成:

boolean b = a = (++ i > 2);

但是,代码可能在逻辑上是不正确的,因为这个深奥的表达没有那么多意义.由于前一行设置了a的值,我假设下一行实际上打算测试a.所以实际意图可能是:

boolean b = a == true ? ++i > 2 ? true : false : false; //notice the ==

在这种情况下,您可以将其分解为:

(a == true) ? (++i > 2 ? true

: false)

: false;

但是你不需要实际执行== true,因为a已经是布尔值,所以你可以这样做:

a ? (++i > 2 ? true

: false)

: false;

在这里,它检查a是否为真.如果是,则执行我们已经检查的检查(即,查看i的递增值是否大于2),否则返回false.

但即便是这个复杂的表达也可以简化为:

boolean b = a && (++i > 2);

java三元运算符用的多不多_Java多个三元运算符相关推荐

  1. java下标运算符_《Java从小白到大牛精简版》之第6章 运算符(下)

    <Java从小白到大牛>纸质版已经上架了!! 6.4 位运算符 位运算是以二进位(bit)为单位进行运算的,操作数和结果都是整型数据.位运算符有如下几个运算符:&.|.^.~.&g ...

  2. java se入门_java SE 入门之运算符(第三篇)

    在 java 中主要有以上运算符,分为 赋值运算符 ,算术运算符.关系运算符(比较运算符),逻辑运算符和三目运算符(三元运算符). 我们一起来学习下吧! 一.赋值运算符 赋值运算符主要有五个.分别是 ...

  3. java中平方的表达式_JAVA语言中的运算符和表达式

    JAVA--运算符 按运算符要求的运算符个数可分为一元.二元.三元运算符: 一元运算符有一个操作数:如正数或者负数前面的"+"."-",和自增"++& ...

  4. Java的if判断对象为null时,null放在比较运算符的左边还是右边较好?

    如java中:if(name == null)和if(null == name)有什么讲究吗? 答:在java里面,它们是一样的.但是通常写为null == name.这其实是在C语言里面引申出来的. ...

  5. java 偏移符号_java中的移位运算符总结

    java中的移位运算符:<>,>>>总结 java中有三种移位运算符 << : 左移运算符,num << 1,相当于num乘以2 >> ...

  6. Java教学基础1-基本介绍、变量、基本类型、运算符

    这里写自定义目录标题 第一讲 JDK (Java的运行环境) 执行过程 如何开发一个java程序 Hello World尝试一下 Java的跨平台性 Java解释型语言 Java的两大核心机制 注释 ...

  7. java逻辑符号怎么打_Java基础知识之运算符和输入输出

    知识是珍宝,但实践是得到它的钥匙.--托马斯·富勒 Java基础知识之运算符和输入输出 一.运算符1.算术运算符:包括:+,-,*,/(整数运算取整),%(取余),++(递增1),–等 2.赋值运算符 ...

  8. java右移位_java中的移位运算符:,,总结

    java中有三种移位运算符 <<      :     左移运算符,num << 1,相当于num乘以2 >>      :     右移运算符,num >& ...

  9. java怎样将乘法优化成位移乘法_Java性能优化:程序优化

    现在计算机的处理性能越来越好,加上JDK升级对一些代码的优化,在代码层针对一些细节进行调整可能看不到性能的明显提升, 但是我觉得在开发中注意这些,更多的是可以保持一种性能优先的意识,对一些敲代码时间比 ...

最新文章

  1. python打印表格_使用 Python 打印漂亮的表格,这两项基本功你可会?
  2. iOS开发之使用XMPPFramework实现即时通信(二)
  3. 请求中文乱码_【1】执行Http请求访问网页
  4. 计算机和网络知识,计算机和网络技术基础知识
  5. 图书查找java_java第三季第一章:查找图书信息实现
  6. Winform中怎样设置ContextMenuStrip右键菜单的选项ToolStripMenuItem添加照片
  7. AWS上的应用程序自动扩展–选项及其对性能的影响
  8. genymotion 此应用与您的手机不兼容
  9. 面试官对我说:虽然你技术能力强,但是依然做不了架构师
  10. [js高手之路]javascript腾讯面试题学习封装一个简易的异步队列
  11. 查询所有的oracle表、表空间、数据库连接等信息
  12. [原创]全球首款不使用ViewState的Asp.Net2.0控件库
  13. Divide and conquer method
  14. Linux线程编程之生产者消费者问题【转】
  15. java毕业设计大数据在线考试系统在线阅卷系统及大数据统计分析源码+系统+数据库+lw文档+调试运行
  16. 看懂555定时器,有哪些应用?
  17. Win11 安装 Linux 子系统
  18. np.random用法
  19. uni-app 和H5页面视频播放flv格式视频监控
  20. yolov5环境配置及训练coco128数据集

热门文章

  1. 当爬虫被拒绝时(Access Denied)
  2. 小封装SOT23车规加密认证芯片ALPU-CV
  3. 计算机如何连接发票打印机,惠普打印机怎么连接电脑详细步骤,发票打印机怎么添加-...
  4. 今日头条校招2017.7.21编程3,PM、idea、程序员
  5. 《零基础学HTML5+CSS3(全彩版)》读书笔记
  6. CMY/CMYK 打印机色彩
  7. [js点滴(转)]JavaScript中的this陷阱的最全收集--没有之一
  8. 基于全景分割Max-Deeplab的版面分析:Towards End-to-End Unified Scene Text Detection and Layout Analysis
  9. SAX错误–序言中不允许包含内容
  10. 数析三剑客 numpy pandas matplotlib 基础操作