当前位置:首页 » 编程语言 » 三目运算java

三目运算java

发布时间: 2022-06-30 01:42:58

java三目运算符问题如下,为什么答案选c不选b

答案:因为三目运算符的计算机制,会对符号?右侧的两个数据类型进行类型转换

具体分析如下:

x > 4 ? 99.9 : 9表达式在计算时,会把先把整形9类型转换为99.9对应的浮点数类型,最后输出就是9.0。


如果有用,烦请采纳并且点击右上角的关注哈。

Ⅱ 在Java 里什么时候使用三目运算比较好

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

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

例如:

//判断一个数的正负
publicStringjudge(inta){

/*if(a>0){
return"a是正数";
}else{
return"a是负数";
}*/

//三目运算符
Stringc=a>0?"a是正数":"a是负数";

returnc;
}

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

Ⅲ java 三目运算符

其实这主要是JAVA重载和基本数据类型自动转型造成的。
JAVA重载:这里主要调用了println(char x) 和println(int x) 两个方法。
基本数据类型自动转型原则中有一条:有多种类型混合运算时,系统将所有类型转换为大的,然后再进行计算。
自动转型顺序:
byte->short(char)->int->long->float->double.
还有0~65535可以认为是int也可以是char。
System.out.println(true?x:0);此处0被认为是char,所以输出b,倘若把0改为65536,则输出66.
同理
System.out.println(true?x:1111111110);此处1111111110已经大于了65535,所以x被自动转型为int再输出,输出66.

System.out.println(false?i:x);也是同理,将x转换为int,输出 66.
其实我讲得也不是非常详细,有兴趣可以仔细看下重载和基本数据类型转型的章节,希望能帮到你。

Ⅳ JAVA三目运算符问题

1、三目运算符 (表达式1)?(表达式2):(表达式3),计算方法是这样的:表达式1是一个逻辑表达式,如果其值为true,则整个表达式的值为表达式2的值,否则为表达式3的值

2、例子:int i = (5 > 3) ? (5 + 3) : (5 - 3);结果为i = 8.因为5 > 3为true,所以i = 5 + 3.

3、根据三目运算符的从右到左的结合性,我是这样划分的
year > a.year ? 1 : (year < a.year ? -1 : (month > a.month ? 1 : (month < a.month ? -1 : (day > a.day ? 1 : (day < a.day ? -1 : 0)))));
所以应该从最右边的那个表达式开始计算,结果应该是1、0、-1中的一个值。

以上纯属个人理解。没搞清楚你这个算法到底是什么意义。。。。还有你的compare()方法不能声明为静态。

Ⅳ java中三目运算符

先学java的叫它,三元运算符;先学c的叫它三目运算符
即( ?: )
如名字表示的三元运算符需要三个操作数。
语法为:条件表达式?表达式1:表达式2。
说明:问号前面的位置是判断的条件,判断结果为bool型,为true时调用表达式1,为false时调用表达式2。
其逻辑为:“如果为真执行第一个,否则执行第二个。”

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

三目运算符,又称条件运算符,是计算机语言(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三目运算符

这个问题主要考察的应该不是三目运算符,而是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。
如果问题解决,请采纳本答案

Ⅷ 三目运算符 java

这是编译器的自动装箱/拆箱转换引起的问题,
自动装箱/拆箱的特性,只要一个运算中有不同的类型,涉及到类型转换,那么编译器会往下(基本类型)转型,再进行运算。 就是说,如果运算中有int和Integer,Integer会先转成int再计算。
所以你的代码中,最后一行
i = StringUtils.isEmpty(ComNo)?RecordType:0;
实际的运行会是这样 i = StringUtils.isEmpty(ComNo)?RecordType.intValue():0;
RecordType为null,所以会报错。
可以改成:i = StringUtils.isEmpty(ComNo) ? RecordType : Integer.valueOf(0);
保持类型的一致就不会自动转型了

Ⅸ 在JAVA中,什么是单目/双目/三目运算符

所谓单目运算符就是只有需要一个操作数的运算符,如:--、++同理,双目运算符就是需要两个操作数的运算符,如:+、-、*、/、=
等。三目运算符只有一个
?
:
。(需要三个操作数)

Ⅹ java三目运算符

在Java里面有一个唯一的三目运算符,那就是:
? :
条件a? 结果1:结果2;
其意思就是:当条件a成立时,返回结果1,否则返回结果2;
这个就相当于是一个分支程序。但是它只是一个运算。

热点内容
在哪里开启密码显示 发布:2025-02-04 18:38:30 浏览:787
怎么查询qq密码 发布:2025-02-04 18:20:10 浏览:512
python编写接口 发布:2025-02-04 18:08:30 浏览:78
怎么给游戏设置密码 发布:2025-02-04 18:03:08 浏览:926
商品存储规划 发布:2025-02-04 17:45:24 浏览:567
ios访问共享 发布:2025-02-04 17:36:33 浏览:335
javabuild 发布:2025-02-04 17:30:19 浏览:592
gnulinux编译 发布:2025-02-04 17:30:18 浏览:132
苏州阿里云服务器专网 发布:2025-02-04 17:21:05 浏览:526
如何学习php 发布:2025-02-04 17:11:55 浏览:389