java什么叫“三目条件运算符”?

Python012

java什么叫“三目条件运算符”?,第1张

三目运算符,又称条件运算符,是计算机语言(c,c++,java等)的重要组成部分。它是唯一有3个操作数的运算符,所以有时又称为三元运算符。一般来说,三目运算符的结合性是右结合的。

定义:

对于条件表达式b ? x : y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值否则,计算y的值,运算结果为y的值。一个条件表达式绝不会既计算x,又计算y。条件运算符是右结合的,也就是说,从右向左分组计算。例如,a ? b : c ? d : e将按a ? b : (c ? d : e)执行。加括号()是为了方便阅读,不加也是一样的。

可以理解为"(a<b)?a:b"是一个"条件表达式",它是这样执行的: 如果a<b为真,则表达式取a值,否则取b值.条件运算符由两个符号组成"?“和”:", 要求有3个操作对象,所以也叫它三目运算符,

(1)它的一般形式为:<表达式1>? <表达式2>: <表达式3>"?"运算符的含义是:先求表达式1的值,如果为真,则执行表达式2,并返回表达式2的结果如果表达式1的值为假,则执行表达式3,并返回表达式3的结果。

(2)通常情况下,表达式1是关系表达式或逻辑表达式,用于描述条件表达式中的条件,表达式2和表达式3可以是常量,变量或表达式.

(3)在程序中,通过把条件表达式的值直接赋予某个变量.

A=(b>c)?d:e1

(4)条件表达式的优先级别仅高于赋值运算符,而低于前面遇到过的所有运算符.

因此,min=(a<b)?a:b括号可以不要,可直接写成,min=a<b?a:b如果有x<y?x+1:y-1等效于x<y(x+1):(y-1)而不等效于(x<y?x+1:y)-1

(5) 条件运算符的结合方向为"自右至左".

(6) 条件表达式允许嵌套,即允许条件表达式中的表达式2和表达式3又是一个条件表达式.例如:下面的例子

EL表达式中使用三目运算符:

单个判断:

${postNum == null ? 0 : postNum}

Servlet:

PwPersonalDetails personalDetails=pwPersonalDetailsService.

findById(borrowerId)//查询个人信息

request.setAttribute("personalDetails", personalDetails)//传参

jsp:

<div>

<p>有无购车:</p>

<p id="PurchaseCar">

${personalDetails.purchaseCar eq true ? "有购车":"无购车"}

</p>

</div>1234567891011121314

EL表达式结合三目运算符多个判断条件写法:

比如:我后台查询出来的borrowMoney(表单)数据有bidTypeId(标种类型)分别为1-7七种:我要传递到前端html给一个p标签根据bidTypeId不同给予不同的名称:

现在直接将多个三目运算符拼成多个条件的写法:

${borrowMoney.bidTypeId eq 1 ? '信用额度:':(borrowMoney.bidTypeId eq 2 ? '抵押额度:':(borrowMoney.bidTypeId eq 5 ?'担保额度:':(borrowMoney.bidTypeId eq 7 ? '流转额度:':'信用额度:')))}

希望对您有所帮助!~

这个问题主要考察的应该不是三目运算符,而是java运算的自动转换。

i为int类型

x为char类型

第一行计算x和0,此时0可以被看作是char类型,所以x并没有被转换,而是直接输出B

第二行计算x和1111111110,而1111111110是无法保存为char类型的,只能当作int,所以此时x需要被强转成int之后再进行运算,char类型的x在强转成int之后就变成了他的asc码。也就是66。

第三行,计算x和i,i是int类型,所以与第二行同理,x被自动转换成int,结果为66。

如果问题解决,请采纳本答案

需要进行判断的时候使用三目运算比较好,可以替换if--else

三目运算符,又称条件运算符。条件表达式b ? x : y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。

例如:

       // 判断一个数的正负

    public String judge(int a) {

    

        /*if (a > 0) {

            return "a是正数"

        } else {

            return "a是负数"

        }*/

        

        // 三目运算符

        String c = a > 0 ? "a是正数" : "a是负数"

        

        return c

    }

此例子里面三目运算符与if--else效果是一样的。