通过与 Jira 对比,让您更全面了解 PingCode

  • 首页
  • 需求与产品管理
  • 项目管理
  • 测试与缺陷管理
  • 知识管理
  • 效能度量
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案

25人以下免费

目录

JAVA里面表达式,关系式,条件表达式,逻辑表达式,四者有什么区别

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<b?b:b<c?a:c;//3,这样写是正确的

}

}

数据类型

表达式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

}

相关文章