| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 590 人关注过本帖
标题:条件表达式问题
只看楼主 加入收藏
wumingsx
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-3-10
收藏
 问题点数:0 回复次数:7 
条件表达式问题

public class test{

public static void main(String args[]){

int x = 6;

double d = 7.7;

System.out.println((x>d) ? 8.0:9);

}

}

为什么输出为9.0

搜索更多相关主题的帖子: 表达 条件 
2006-04-06 23:00
晓狐狸
Rank: 2
等 级:新手上路
威 望:3
帖 子:95
专家分:0
注 册:2006-4-6
收藏
得分:0 
(x>d) ? 8.0:9

这行代码的意思就是

将 x 和 d 进行比较

如果 x>d 则返回一个浮点数8.0

否则返回整数9

x明明就比d小嘛 当然返回整数9喽。

2006-04-06 23:39
wumingsx
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-3-10
收藏
得分:0 
不是的,它的输出结果是9.0
2006-04-06 23:55
球球
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:1146
专家分:265
注 册:2005-11-28
收藏
得分:0 

因为前面是8.0,你试试改为8就知道了.


好累
2006-04-07 02:57
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
这就是自动提升的效果,当两个数一起运算的时候,小的会提升为大的

可惜不是你,陪我到最后
2006-04-07 10:14
wumingsx
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-3-10
收藏
得分:0 
如果前面改成8,输出结果也是9.0
2006-04-07 18:37
伯约
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2006-4-5
收藏
得分:0 
我觉得这是java在执行时数据之间的隐式转换的问题:
因为你x为int类型,而d为double类型,所以在程序执行时就会自动把x转换为double类型,后面的9也是一样要转换为double类型,所以就会输出double类型的9.0.
还有即使你两个数据都为int类型,程序在执行时也都会转化为double类型,所以你要想输出int类型的话,必须强制转换.

2006-04-08 14:18
晓狐狸
Rank: 2
等 级:新手上路
威 望:3
帖 子:95
专家分:0
注 册:2006-4-6
收藏
得分:0 
参与运算的 所有参数 全部都是整数就可以了 如果有一个double类型 那就会 自动类型提升 把所有int类型的 隐式转换成double

2006-04-09 12:18
快速回复:条件表达式问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012001 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved