Java提供了一个特殊的三目(三个分支)运算符,它可以替代特定类型的if-then-else语句结构。这个运算符是“?”乍一看可能有一些困惑,但一旦理解“?”运算符,就可以高效地使用它。“?”运算符的一般形式如下:

expression1 ? expression2 : expression3

其中expression1可以实任何结果为布尔值的表达式。如果expression1的结果为true,就对expression2进行求值;否则对expression3进行求值。“?”运算符的结果是对其进行求值的表达式。expression2和expression3都需要返回相同(或兼容)的类型,并且不能为void。

下面是使用“?”运算符的一个例子:

ratio = denom == 0 ? 0 : num/denom;

当Java对这条赋值语句进行求值时,首先分析“?”左侧的表达式,如果denom等于0,就对问号和冒号之间的表达式进行求值,并将其作为整个“?”表达式的值。如果denom不等于0,就对冒号之后的表达式进行求值,并作为整个“?”表达式的值。“?”运算符产生的结果就会赋值给ratio。

最新文章

  1. java基础知识(四)java内存机制
  2. Android LayoutInflater原理分析,带你一步步深入了解View(一)
  3. hadoop 分布式缓存
  4. C#代码示例_定义类
  5. poj 2029 Get Many Persimmon Trees (dp)
  6. Vim常用配置(~/.vimrc)(转载)
  7. string 常用 方法
  8. BZOJ3231(矩阵连乘,稍有点复杂)
  9. Linux 下IOport编程訪问
  10. Emrips 反质数枚举 javascript实现
  11. Python+requests+unittest+excel实现接口自动化测试框架
  12. 简述ADO中如何使用参数化的命令对象以及增删改查,存储过程的操作
  13. 一个本科学生对Linux的认知
  14. day11 作用域
  15. 转: jvm调优参数总结
  16. 怎样从外网访问内网RESTful API?
  17. 日志插件 log4net 的配置和使用
  18. howdoi 简单分析
  19. Codeforces 454D - Little Pony and Harmony Chest
  20. High School: Become Human(数学思维)

热门文章

  1. MySQL5.7脚本自动安装
  2. 服务治理-Resilience4j(限流)
  3. Java8特性
  4. ReactNative: 使用滚动视图ScrollView组件
  5. Netty实战:设计一个IM框架
  6. SpringCloud的入门学习之Eureka(高可用注册中心HA)构建Provider服务、Consumer服务
  7. 利用Python制作一个只属于和她的聊天器,再也不用担心隐私泄露啦!
  8. requeests模块请求常用参数的写法整理
  9. Scrapy框架-中间件
  10. Python中为什么不能用可变对象作为默认参数的值