Java三目运算符(条件运算符? :)
Java 提供了一个特别的三元运算符
(也叫三目运算符)经常用于取代某个类型的 if-then-else 语句。条件运算符的符号表示为“?:”,使用该运算符时需要有三个操作数,因此称其为三目运算符。使用条件运算符的一般语法结构为:
- result = <expression> ? <statement1> : <statement3>;
其中,expression 是一个布尔表达式。当 expression 为真时,执行 statement1, 否则就执行 statement3。此三元运算符要求返回一个结果,因此要实现简单的二分支程序,即可使用该条件运算符。
下面是一个使用条件运算符的示例。
- int x,y,z;
- x = 6,y = 2;
- z = x>y ? x-y : x+y;
在这里要计算 z 的值,首先要判断 x>y 表达的值,如果为 true,z 的值为 x-y;否则 z 的值为 x+y。很明显 x>y 表达式结果为 true,所以 z 的值为 4。
技巧:可以将条件运算符理解为 if-else 语句的简化形式,在使用较为简单的表达式时,使用该运算符能够简化程序代码,使程序更加易读。
在使用条件运算符时,还应该注意优先级问题,例如下面的表达式:
- x>y ? x-=y : x+=y;
在编译时会出现语法错误,因为条件运算符优先于赋值运算符,上面的语句实际等价于:
- (x>y ? x-=y : x)+=y;
而运算符“+=”是赋值运算符,该运算符要求左操作数应该是一个变量,因此出现错误。为了避免这类错误,可以使用括号“0”来加以区分。例如,下面是正确的表达式。
- (x>y) ? (x-=y): (x+=y);
例 1
在程序中声明 3 个变量 x、y、z,并由用户从键盘输入 x 的值,然后使用条件运算符向变量 y 和变量 z 赋值。 实现代码如下:
- public class Test9 {
- public static void main(String[] args) {
- int x, y, z; // 声明三个变量
- System.out.print("请输入一个数:");
- Scanner input = new Scanner(System.in);
- x = input.nextInt(); // 由用户输入x的值
- // 判断x的值是否大于5,如果是y=x,否则y=-x
- y = x > 5 ? x : -x;
- // 判断y的值是否大于x,如果是z=y,否则z=5
- z = y > x ? y : 5;
- System.out.printf("x=%d \n", x);
- System.out.printf("y=%d \n", y);
- System.out.printf("z=%d \n", z);
- }
- }
保存程序并运行,运行效果如图 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三目运算符(条件运算符? :)相关推荐
- Java三目运算符(条件运算符)
什么是三目运算:(布尔表达式 ? 值0:值1;) Java提供了一个特别的三元运算符(也叫三目运算符)经常用于取代某个类型的if-then-else语句.条件运算符的符号表示为"?:&quo ...
- JAVA三目运算符(条件运算符)单层和多层
格式: 判断条件?条件成立结果:条件不成立结果 案例:有单层也有多成 public static void main(String[] args) {//多层三目运算符Scanner sc = new ...
- JAVA 三目运算符
JAVA 三目运算符 三目运算符 格式 案例 三目运算符 三目运算符,又称条件运算符,是计算机语言(c,c++,java等)的重要组成部分.它是唯一有3个操作数的运算符,所以有时又称为三元运算符.一般 ...
- java三目运算符简化代码_如何使用传播运算符简化代码
java三目运算符简化代码 by Matt Granmoe 通过Matt Granmoe 如何使用传播运算符简化代码 (How to simplify your code with the sprea ...
- Java三目运算符 (Ternary Operator ? :)
Java三目运算符 (Ternary Operator ? : ) 条件语句? true内容 : false内容 例子1: int a = 1; int b = 2; int getLarge = a ...
- 关于Java三目运算符类型的困惑
Java三目运算符: (表达式1)?(表达式2):(表达式3) 对于三目运算符,第一个表达式的值必须是boolean类型的值,但是对后两个表达式的类型,则没有要求,也不必相同.但有时涉及类型转换 ...
- 【自学Java】Java三目运算符
Java三目运算符 Java三目运算符教程 在 Java 语言 中,有一种语言可以等价于使用 if-else 进行变量的赋值操作.它就是三目运算符. Java语言三目运算符详解 语法 Object r ...
- Java 三目运算符细节详解
Java 三目运算符细节详解 @author:Jingdai @date:2020.09.24 看到标题你肯定觉得三目运算符有什么好讲的,不是很简单嘛.我之前也是这么认为的,直到今天刷LeetCode ...
- java三目运算符判断boonlean,java三元运算符
首先看一下三元运算符的格式 [条件语句] ? [表达式1] : [表达式2] 其中如条件语句为真执行表达式1,否则执行表达式2.简单的例子就不举了,来点其它的.在JDK1.5以前的版本中,表达式1和表 ...
最新文章
- 自然语言处理中句子相似度计算的几种方法
- 【百战GAN】GAN也可以拿来做图像分割,看起来效果还不错?
- sklearn自学指南(part34)--K-means
- gin 如何返回html_Gin(三):与模板配合使用 tmpl,go web 开发最火框架之一
- OSI七层网络结构图与TCP/IP五层网络结构图
- 女人不需要哲学,因为哲学不能给她们带来面包
- android电子时钟码源,android自定义时钟APP源码
- Linux之unzip命令
- ADADELTA: AN ADAPTIVE LEARNING RATE METHOD
- js 动态生成表格案例
- Mac读写ntfs磁盘工具:Paragon NTFS for Mac
- 连接共享服务器显示拒绝访问权限,无权限访问共享打印机,windows无法连接到打印机拒绝访问 怎么办?...
- Windows两台服务器之间实现文件共享
- android高德地图清除marker,删除多个点标记-点标记-示例中心-JS API 示例 | 高德地图API...
- element-ui tree全部展开和全部折叠
- Linux 编程 —— libstdc++.so.6: version `CXXABI_1.3.11‘ not found
- C-021.字符类型char 以及ASCII对照表
- 谭浩强c语言不讲位运算呢,谭浩强C语言教程第十二章-位运算.doc
- 火狐浏览器中如何设置自动翻译网页
- 重回coding时代 spark hadoop winutils 报错