JAVA里面表达式,关系式,条件表达式,逻辑表达式,四者有什么区别?
一、JAVA里面表达式,关系式,条件表达式,逻辑表达式,四者的区别
区别是格式和优先级不同。
关系表达式(左结合)
优先级次于算述表达式
(1)<、>、<=、>=优先级高
(2)==(等于)、!=(不等于)优先级低
2、成立不成立
成立:命题为真(true)值为1
不成立:命题为假(false)值为0
条件表达式(三目运算符)
1、格式:
表达式1 ? 表达式 2: 表达式3
2、含义:
整个表达式的值由表达式1决定;
若表达式1成立,则整个条件表达式的值为表达式2的值;
若表达式1不成立,则整个条件表达式的值为表达式3的值。
例:
求三数表达式:
d=x>y?x:y;
e=d>z?d:z
或
d=x>y?(x>z?x:z):(y>z?y:z)
3、表达式1的成立与不成立
非0(值为1)——>成立
0——>不成立
4、优先级:只高于赋值法
结合性:
右结合
逻辑表达式
1、逻辑表达符
!(单目)取反 非运算 优先级高于算述运算符
&&(双目)并且 或运算 优先级低于运算符
||(双目)或者 与运算 运算符低于&&
&&:
两个表达式都成立时成立 否则不成立
||:
两个表达式其中任何一个成立就成立,只有两个都不成立时不成立
3、短路问题:
||:
左边成立情况下编译器不计算右边
&&:
左边不成立情况下编译器不计算右边
延伸阅读:
二、JAVA中条件表达式与c语言的不同
与C语言不同的是,JAVA中条件表达式的值必须参与运算。例子如下:
publicclassdemo{
publicstaticvoidmain(String[]args){
inta=10,b=20,y;
a>b?(y=a):(y=b;)//1,这样写是错误的
y=a>b?a:b;//2,这样写是正确的
y=a
}
}
数据类型
表达式1,表达式2,表达式3的类型可以不同.此时条件表达式的值的类型为它们中较高的类型
如果表达式1和表达式2具有相同的类型T,条件表达式的类型为T。
如果表达式1和表达式2中一个有类型T(byte、short或char),而另一个是int类型的常量表达式,其值又可以用类型T表示,则T为条件表达式的类型。
混合类型的计算,e2和e3被提升之后的类型为条件表达式的类型。
public static void 条件表达式的type(){
char x = ‘X’;
int i = 0;
System.out.println(true ? x : 0); //类型为char
System.out.println(true ? x : -1); //类型为int
System.out.println(false ? i : x); //类型为int
}
猜你喜欢LIKE
相关推荐HOT
更多>>大数据具有哪些特点?
一、大数据的概念与内涵“大数据”的概念早已有之,1980年知名未来学家阿尔文•托夫勒便在《第三次浪潮》一书中,将大数据热情地赞颂为“第三次...详情>>
2023-10-11 21:54:13JAVA里面表达式,关系式,条件表达式,逻辑表达式,四者有什么区别?
一、JAVA里面表达式,关系式,条件表达式,逻辑表达式,四者的区别区别是格式和优先级不同。关系表达式(左结合)优先级次于算述表达式(1)、=...详情>>
2023-10-11 21:29:45计算机语言和高级语言的区别是什么?
一、计算机语言和高级语言的区别高级语言的源程序是可以用编译和解释联众方式执行的,而计算机机器语言源程序需要经过汇编生成目标文件执行。高...详情>>
2023-10-11 21:06:19const int &const r2和const int &r2有什么区别?
一、const int &const r2和const int &r2const int &const 是不存在的,编译器会报错const int &const r2和const int &r2没有什...详情>>
2023-10-11 20:07:40热门推荐
uml图有哪些?
沸内联元素有哪些?
热常见的网络数据库有哪些?
热Python 在 Linux 里面有哪些应用?
新怎么做软件开发?
为什么函数式语言里有递归数据类型但没有递归函数类型?
大数据具有哪些特点?
python和java相比写app有什么区别?
JAVA里面表达式,关系式,条件表达式,逻辑表达式,四者有什么区别?
国内用户注册ChatGPT详细步骤及视频教程?
计算机语言和高级语言的区别是什么?
python 利用可变参数传入list并打印,与直接用for循环打印有什么区别?
大数据与深度学习有什么区别?
范畴论和类型论的区别和联系是什么?