社区
Java SE
帖子详情
问一道简单的题目
jacky_yp
2003-10-20 10:52:24
public class q{
public static void main(String args[]){
int a = 5;
System.out.println("Value is - " + ((a < 5) ? 4.6 :5));
}
}
为什么输出是5.0而不是5啊?
...全文
118
15
打赏
收藏
问一道简单的题目
public class q{ public static void main(String args[]){ int a = 5; System.out.println("Value is - " + ((a < 5) ? 4.6 :5)); } } 为什么输出是5.0而不是5啊?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ArLi2003
2003-10-21
打赏
举报
回复
因为你的 ?运算要返回值,所以必须计算之前要先将值对等化,因为4.6 是浮点,所以5 也成了浮点
queena
2003-10-21
打赏
举报
回复
三目运算应该是一个整体看待,
整体中去找最高级别的然后转化要运算的数
如楼上所说的
伊奈
2003-10-21
打赏
举报
回复
例如:
int a=5;
float f=(float)a/2; //显式转换,高于/运算,先将操作数转换成float,再作/运算
伊奈
2003-10-20
打赏
举报
回复
三目运算符是一个整体,后面有double型的
自然结果为double型的
自动转换和显式转换的优先级是一样的,都是强制类型转换
优先级低于一元运算符(++,--),高于二元运算符(+,-等)
whywzf
2003-10-20
打赏
举报
回复
这是不一样的,因为a,b你声明了
上面的4.6和5没有声明,java把没声明的拿去做处理,根据我上面说的顺序转型(根据最“大”类型)
sunenvoy
2003-10-20
打赏
举报
回复
自动取精度高的
LoveRose
2003-10-20
打赏
举报
回复
虽然结果使这样的
但我很奇怪,他怎么会根据?后面的转型呢?
要知道(a<5)返回false后是不会执行?后面的表达式的
如: int a = 5;
int b = 6;
System.out.println("Value is - " + ((a < 5) ? ++b : ++a));
System.out.println(a);
System.out.println(b);
结果是a = 6; b = 6;
也就是说++b没有执行,不明白,他的输出结果怎么又会根据?后面的值转型呢?
whywzf
2003-10-20
打赏
举报
回复
java 计算时默认使用的是int类型。
然后它会以byte -> short -> int -> long -> float ->double 这个方向对结果进行自动转换。如要反过来要显式转换。
dovek2
2003-10-20
打赏
举报
回复
((a < 5) ? 4.6 :5))
经过这一条语句,你的5已经自动转换为double型了,因为4.6是double型的
chinaemin
2003-10-20
打赏
举报
回复
相当于:
if(a<5){
System.out.println("Value is - " + 4));
}else{
System.out.println("Value is - " + 5));
}
chinaemin
2003-10-20
打赏
举报
回复
(a < 5) ? 4 :5)
java中的三元运算符是指:
如果?(在此式中为a<5)前的判别式返回值为true,则此运算式的值为:之前的数或式子(在此式中为4);?(在此式中为a<5)前的判别式返回值为false,则此运算式的值为:之后的数或式子(在此式中为5)。
computerbird
2003-10-20
打赏
举报
回复
这个问题问的很不错哦
我也不知道怎么回答,不过应该和楼上说的差不多吧
应该会自动转型
jackyyp
2003-10-20
打赏
举报
回复
能说的详细点吗?
LoveRose
2003-10-20
打赏
举报
回复
这个问题很有意思,我也不知道答案,但是下面的代码输出却是5
public class q{
public static void main(String args[]){
int a = 5;
System.out.println("Value is - " + ((a < 5) ? 4 :5));
}
}
比较一下就知道,或许结果的取值与?后面的值有关了。
只能是猜测了,望有高手指点了
whywzf
2003-10-20
打赏
举报
回复
根据4.6自动转型了(casting)
1712: 数交点 正n边形内交点的个数
这是
一道
简单
的
题目
,真的很
简单
,真的,我不骗你的,我真的不会骗你,不相信你可以
问
我,千真万确这是
一道
水题。
题目
大意就是这样,是这样的,恩,就是这样。
问
一个正n边形的所有对角线有几个交点。
简单
哇,是不是...
一道
简单
却易混淆的高等数学求极限
题目
limx→+∞(1+1x)x2ex \lim_{x \to + \infty}\frac{(1+\frac{1}{x})^{x^2}}{e^x} ...这是同学
问
我的,错在了哪里? limx→+∞(1+1x)x2是否可以等于limx→∞ex?\lim_{x \to + \infty}(1+\frac{1}{x})^{x^...
可以搜java
题目
答案的网站_百度
一道
笔试
题目
的答案
题目
内容为:从字符串s中找...
问
:是否存在O(n)复杂度的算法答案(Java语言描述,经过测试):下面的两个算法,一个是
简单
算法(利用哈希表),另一个是O(n)复杂度的算法。/***
简单
算法, 利用 哈希集合 保存遍历过的字符...
有什么看起来很难,但是其实很
简单
的
题目
全世界只有3.14 %的人关注了爆炸吧知识做题其实很
简单
今天超模君一进办公室就感觉充满“杀气”,果不其然,一抬头就看见小天拿着一张纸对着我坏笑。莫非这家伙又要我折纸?拿过纸张一看,虽然...
[面试小
题目
] SAP的
一道
面试题
这
题目
是一个同学面SAP的时候
问
的,
题目
很比较
简单
,给你一个string,eg: my book is good 然后要求把每个单词都颠倒顺序输出。 output::ym koob si doog; 最
简单
的思路肯定是先写一个对于一个不含空格的单词的颠倒...
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章