Java 提供了一个特别的三元运算符

(也叫三目运算符)经常用于取代某个类型的 if-then-else 语句。条件运算符的符号表示为“?:”,使用该运算符时需要有三个操作数,因此称其为三目运算符。使用条件运算符的一般语法结构为:


  1. result = <expression> ? <statement1> : <statement3>;

其中,expression 是一个布尔表达式。当 expression 为真时,执行 statement1, 否则就执行 statement3。此三元运算符要求返回一个结果,因此要实现简单的二分支程序,即可使用该条件运算符。

下面是一个使用条件运算符的示例。


  1. int x,y,z;
  2. x = 6,y = 2;
  3. z = x>y ? x-y : x+y;

在这里要计算 z 的值,首先要判断 x>y 表达的值,如果为 true,z 的值为 x-y;否则 z 的值为 x+y。很明显 x>y 表达式结果为 true,所以 z 的值为 4。

技巧:可以将条件运算符理解为 if-else 语句的简化形式,在使用较为简单的表达式时,使用该运算符能够简化程序代码,使程序更加易读。

在使用条件运算符时,还应该注意优先级问题,例如下面的表达式:


  1. x>y ? x-=y : x+=y;

在编译时会出现语法错误,因为条件运算符优先于赋值运算符,上面的语句实际等价于:


  1. (x>y ? x-=y : x)+=y;

而运算符“+=”是赋值运算符,该运算符要求左操作数应该是一个变量,因此出现错误。为了避免这类错误,可以使用括号“0”来加以区分。例如,下面是正确的表达式。


  1. (x>y) ? (x-=y): (x+=y);

例 1

在程序中声明 3 个变量 x、y、z,并由用户从键盘输入 x 的值,然后使用条件运算符向变量 y 和变量 z 赋值。 实现代码如下:


  1. public class Test9 {
  2. public static void main(String[] args) {
  3. int x, y, z; // 声明三个变量
  4. System.out.print("请输入一个数:");
  5. Scanner input = new Scanner(System.in);
  6. x = input.nextInt(); // 由用户输入x的值
  7. // 判断x的值是否大于5,如果是y=x,否则y=-x
  8. y = x > 5 ? x : -x;
  9. // 判断y的值是否大于x,如果是z=y,否则z=5
  10. z = y > x ? y : 5;
  11. System.out.printf("x=%d \n", x);
  12. System.out.printf("y=%d \n", y);
  13. System.out.printf("z=%d \n", z);
  14. }
  15. }

保存程序并运行,运行效果如图 1 和图 2 所示:

图 1  键盘输入58

图 2  键盘输入4

在该程序中,首先输入 x 的值为 58,然后判断 x 的值是否大于 5,显然条件是成立,则 y 的值为 x,即 y=58。接着判断 y 的值是否大于 x,因为 y 的值和 x 的值都为 58,所以该条件是不成立的,则 z=5。再次输入 x 的值为 4,然后判断 x 的值是否大于 5,不成立,则 y=-4;接着判断 y 的值是否大于 x,不成立,则 z=5。

Java三目运算符(条件运算符? :)相关推荐

  1. Java三目运算符(条件运算符)

    什么是三目运算:(布尔表达式 ? 值0:值1;) Java提供了一个特别的三元运算符(也叫三目运算符)经常用于取代某个类型的if-then-else语句.条件运算符的符号表示为"?:&quo ...

  2. JAVA三目运算符(条件运算符)单层和多层

    格式: 判断条件?条件成立结果:条件不成立结果 案例:有单层也有多成 public static void main(String[] args) {//多层三目运算符Scanner sc = new ...

  3. JAVA 三目运算符

    JAVA 三目运算符 三目运算符 格式 案例 三目运算符 三目运算符,又称条件运算符,是计算机语言(c,c++,java等)的重要组成部分.它是唯一有3个操作数的运算符,所以有时又称为三元运算符.一般 ...

  4. java三目运算符简化代码_如何使用传播运算符简化代码

    java三目运算符简化代码 by Matt Granmoe 通过Matt Granmoe 如何使用传播运算符简化代码 (How to simplify your code with the sprea ...

  5. Java三目运算符 (Ternary Operator ? :)

    Java三目运算符 (Ternary Operator ? : ) 条件语句? true内容 : false内容 例子1: int a = 1; int b = 2; int getLarge = a ...

  6. 关于Java三目运算符类型的困惑

    Java三目运算符:    (表达式1)?(表达式2):(表达式3) 对于三目运算符,第一个表达式的值必须是boolean类型的值,但是对后两个表达式的类型,则没有要求,也不必相同.但有时涉及类型转换 ...

  7. 【自学Java】Java三目运算符

    Java三目运算符 Java三目运算符教程 在 Java 语言 中,有一种语言可以等价于使用 if-else 进行变量的赋值操作.它就是三目运算符. Java语言三目运算符详解 语法 Object r ...

  8. Java 三目运算符细节详解

    Java 三目运算符细节详解 @author:Jingdai @date:2020.09.24 看到标题你肯定觉得三目运算符有什么好讲的,不是很简单嘛.我之前也是这么认为的,直到今天刷LeetCode ...

  9. java三目运算符判断boonlean,java三元运算符

    首先看一下三元运算符的格式 [条件语句] ? [表达式1] : [表达式2] 其中如条件语句为真执行表达式1,否则执行表达式2.简单的例子就不举了,来点其它的.在JDK1.5以前的版本中,表达式1和表 ...

最新文章

  1. 自然语言处理中句子相似度计算的几种方法
  2. 【百战GAN】GAN也可以拿来做图像分割,看起来效果还不错?
  3. sklearn自学指南(part34)--K-means
  4. gin 如何返回html_Gin(三):与模板配合使用 tmpl,go web 开发最火框架之一
  5. OSI七层网络结构图与TCP/IP五层网络结构图
  6. 女人不需要哲学,因为哲学不能给她们带来面包
  7. android电子时钟码源,android自定义时钟APP源码
  8. Linux之unzip命令
  9. ADADELTA: AN ADAPTIVE LEARNING RATE METHOD
  10. js 动态生成表格案例
  11. Mac读写ntfs磁盘工具:Paragon NTFS for Mac
  12. 连接共享服务器显示拒绝访问权限,无权限访问共享打印机,windows无法连接到打印机拒绝访问 怎么办?...
  13. Windows两台服务器之间实现文件共享
  14. android高德地图清除marker,删除多个点标记-点标记-示例中心-JS API 示例 | 高德地图API...
  15. element-ui tree全部展开和全部折叠
  16. Linux 编程 —— libstdc++.so.6: version `CXXABI_1.3.11‘ not found
  17. C-021.字符类型char 以及ASCII对照表
  18. 谭浩强c语言不讲位运算呢,谭浩强C语言教程第十二章-位运算.doc
  19. 火狐浏览器中如何设置自动翻译网页
  20. 重回coding时代 spark hadoop winutils 报错

热门文章

  1. 基于JSP开发的影视创作论坛管理系统
  2. 第2章——创建与维护MySQL数据库
  3. 软件测试行业趋势分析
  4. 第五章:数学运算-random:伪随机数生成器-生成随机数
  5. 什么是hidl_protobuf 在通过 hidl 接口传输时,是不是应该用 string 啊
  6. 超级好用的轻量级JSON处理命令jq
  7. Python量化研究:可转债抢权配售值得做吗?
  8. Vue模板语法(理解前端渲染)
  9. Json数据格式的使用
  10. 人体姿态估计openpose学习与应用